initial commit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
const express = require('express');
|
||||
const multer = require('multer');
|
||||
const cors = require('cors');
|
||||
|
||||
const {
|
||||
initializeSalesforceConnection,
|
||||
attachPdfToAccount,
|
||||
splitExcelFile,
|
||||
splitPDF,
|
||||
cleanUp
|
||||
} = require('./services');
|
||||
|
||||
const app = express();
|
||||
app.use(cors({
|
||||
origin: 'http://localhost:5173'
|
||||
}));
|
||||
|
||||
const upload = multer({ dest: 'uploads/' });
|
||||
|
||||
app.post('/api/documents', upload.array('documents'), async (req, res) => {
|
||||
const documentTitle = req.body.title;
|
||||
|
||||
let excelFile = null;
|
||||
let pdfFile = null;
|
||||
|
||||
if (req.files && req.files.length > 0) {
|
||||
req.files.forEach((file) => {
|
||||
const fileName = file.originalname.toLowerCase();
|
||||
if (fileName.endsWith('.xlsx') || fileName.endsWith('.xls')) {
|
||||
excelFile = file.path;
|
||||
} else if (fileName.endsWith('.pdf')) {
|
||||
pdfFile = file.path;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!documentTitle || !excelFile || !pdfFile) {
|
||||
if (req.files) {
|
||||
cleanUp(req.files.map((f) => f.path));
|
||||
}
|
||||
return res.status(400).json({
|
||||
error: !documentTitle ? 'Document title is required' : 'Both excel and pdf files are required'
|
||||
});
|
||||
}
|
||||
|
||||
const tempFilePath = [];
|
||||
try {
|
||||
let resultExcel = await splitExcelFile(excelFile);
|
||||
let resultPdf = await splitPDF(resultExcel, pdfFile, tempFilePath);
|
||||
|
||||
await initializeSalesforceConnection();
|
||||
await attachPdfToAccount(resultPdf, documentTitle); // No need to pass sfdc
|
||||
|
||||
return res.status(200).json({
|
||||
ok: true,
|
||||
message: 'Files uploaded successfully!'
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error in processing the files: ', err);
|
||||
return res.status(500).json({
|
||||
ok: false,
|
||||
message: 'Error in processing and uploading the files'
|
||||
});
|
||||
} finally {
|
||||
cleanUp(tempFilePath);
|
||||
cleanUp([excelFile, pdfFile]);
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = { app };
|
||||
Reference in New Issue
Block a user