Skip to content

Commit

Permalink
fix: add error handling to avoid server crashes
Browse files Browse the repository at this point in the history
  • Loading branch information
marianfoo committed Nov 19, 2024
1 parent 4170f98 commit 7a3856c
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions importer-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,18 @@ const Parser = require("./utils/Parser");

module.exports = class ImporterService extends cds.ApplicationService {
init() {

// module.exports = (srv) => {
this.on('UPDATE','Spreadsheet', async req => {
// srv.on('UPDATE','Spreadsheet', async req => {
// const db = cds.connect.to('db');
this.on('UPDATE', 'Spreadsheet', async req => {
try {
const entity = cds.entities()[req.params[0].entity];
let spreadsheetSheetsData = [];
let columnNames = [];
const spreadSheet = XLSX.read(req.data.content.readableBuffer[0], { type: "buffer", cellNF: true, cellDates: true, cellText: true, cellFormula: true });
const spreadSheet = XLSX.read(req.data.content.readableBuffer[0], {
type: "buffer",
cellNF: true,
cellDates: true,
cellText: true,
cellFormula: true
});

// Loop over the sheet names in the workbook
for (const sheetName of Object.keys(spreadSheet.Sheets)) {
Expand All @@ -28,8 +31,12 @@ module.exports = class ImporterService extends cds.ApplicationService {
spreadsheetSheetsData = spreadsheetSheetsData.concat(currSheetData);
columnNames = columnNames.concat(XLSX.utils.sheet_to_json(spreadSheet.Sheets[sheetName], { header: 1 })[0]);
}
const data = Parser.parseSpreadsheetData(spreadsheetSheetsData,entity.elements);
await cds.db.run(INSERT(data).into(entity.name) );
const data = Parser.parseSpreadsheetData(spreadsheetSheetsData, entity.elements);
await cds.db.run(INSERT(data).into(entity.name));

} catch (error) {
req.error(500, `Failed to process spreadsheet: ${error.message}`);
}
});
return super.init();
}
Expand Down

0 comments on commit 7a3856c

Please sign in to comment.