37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
const UnitOfWork = require('../../repositories/UnitOfWork');
|
|
const CompanyDocumentService = require('../../services/CompanyDocumentService');
|
|
const { logger } = require('../../middleware/logger'); // <-- import logger
|
|
|
|
class CompanyDocumentController {
|
|
static async uploadCompanyId(req, res) {
|
|
const userId = req.user.userId;
|
|
logger.info(`[CompanyDocumentController] uploadCompanyId called for userId: ${userId}`);
|
|
const { idType, idNumber, expiryDate } = req.body;
|
|
const files = {
|
|
front: req.files['front'] ? req.files['front'][0] : null,
|
|
back: req.files['back'] ? req.files['back'][0] : null
|
|
};
|
|
const unitOfWork = new UnitOfWork();
|
|
await unitOfWork.start();
|
|
try {
|
|
const result = await CompanyDocumentService.uploadCompanyId({
|
|
userId,
|
|
idType,
|
|
idNumber,
|
|
expiryDate,
|
|
files,
|
|
unitOfWork
|
|
});
|
|
await unitOfWork.commit();
|
|
logger.info(`[CompanyDocumentController] uploadCompanyId success for userId: ${userId}`);
|
|
res.json({ success: true, uploads: result });
|
|
} catch (error) {
|
|
logger.error(`[CompanyDocumentController] uploadCompanyId error for userId: ${userId}`, { error });
|
|
await unitOfWork.rollback(error);
|
|
res.status(400).json({ success: false, message: error.message });
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = CompanyDocumentController;
|