feat: add signatureBase64 to document insertion and implement deletion of signature documents for user

This commit is contained in:
seaznCode 2026-01-14 16:57:26 +01:00
parent d7fd62d6b4
commit f286d44353

View File

@ -10,6 +10,7 @@ class UserDocumentRepository {
documentType,
contractType = 'contract',
objectStorageId,
signatureBase64 = null,
originalFilename,
fileSize,
mimeType
@ -18,9 +19,9 @@ class UserDocumentRepository {
const conn = this.unitOfWork.connection;
const query = `
INSERT INTO user_documents (
user_id, document_type, contract_type, object_storage_id,
user_id, document_type, contract_type, object_storage_id, signatureBase64,
original_filename, file_size, mime_type
) VALUES (?, ?, ?, ?, ?, ?, ?)
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
`;
try {
const [result] = await conn.query(query, [
@ -28,6 +29,7 @@ class UserDocumentRepository {
documentType,
contractType,
objectStorageId,
signatureBase64,
originalFilename,
fileSize,
mimeType
@ -147,6 +149,22 @@ class UserDocumentRepository {
throw error;
}
}
async deleteSignatureDocumentsForUser(userId) {
logger.info('UserDocumentRepository.deleteSignatureDocumentsForUser:start', { userId });
const conn = this.unitOfWork.connection;
try {
const [result] = await conn.query(
`DELETE FROM user_documents WHERE user_id = ? AND document_type = 'signature'`,
[userId]
);
logger.info('UserDocumentRepository.deleteSignatureDocumentsForUser:success', { userId, affectedRows: result.affectedRows });
return result.affectedRows;
} catch (error) {
logger.error('UserDocumentRepository.deleteSignatureDocumentsForUser:error', { userId, error: error.message });
throw error;
}
}
}
module.exports = UserDocumentRepository;