const { sequelize,Workingnotes} = require('../models') const { logMsg } = require('../services/logger.js'); const fs = require('fs'); const path = require('path'); exports.createNotes = async (req, res) => { try { for (const value of req.body.notes) { notes = JSON.stringify(value); data = { losid: req.body.losid, notes: notes, sheet_no : value.index + 1, user_id: req.body.user_id, createdby: req.body.createdby }; // insert working notes data await Workingnotes.create(data) .then(data=>{ logMsg.info("Notes insert Success");}) .catch(err=>{ logMsg.info("Notes insert Failed");}); } res.send({'status':200 , message:"Success." ,'data': "no data"}); } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; exports.updateNotes = async (req, res) => { try { for (const value of req.body.notes) { sheet_no = value.index + 1; notesData = await Workingnotes.findOne({where :{losid : req.body.losid , sheet_no : sheet_no , is_active:1}}); if(notesData != undefined) { id = notesData.dataValues.id; notes = JSON.stringify(value); // update working notes data await Workingnotes.update({notes: notes , updatedby: req.body.updatedby} , { where: { id: id } }) .then(data=>{ logMsg.info("Notes update Success");}) .catch(err=>{ logMsg.info("Notes update Failed");}); }else{ notes = JSON.stringify(value); data = { losid: req.body.losid, notes: notes, sheet_no : value.index + 1, user_id: req.body.user_id, createdby: req.body.createdby }; // insert working notes data await Workingnotes.create(data) .then(data=>{ logMsg.info("Notes insert Success");}) .catch(err=>{ logMsg.info("Notes insert Failed");}); } } res.send({'status':200 , message:"Success." ,'data': "no data"}); } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; exports.notesList = async (req, res) => { try { notesData = await Workingnotes.findAll({where :{losid : req.query.losid, is_active:1}}).catch(err=>{console.log(err);}); res.send({'status':200 , message:"Success." ,'data': notesData}); } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; exports.deleteNotes = async (req, res) => { try { for (const value of req.body.id) { // update working notes data (is_active = 0) await Workingnotes.update({is_active: 0} , { where: { id: value } }) .then(data=>{ logMsg.info("Notes is_active = 0 update Success");}) .catch(err=>{ logMsg.info("Notes is_active = 0 update Failed");}); } res.send({'status':200 , message:"Success." ,'data': "no data"}); } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; exports.readLogFileName = async (req , res) => { try { folderName = req; const logFilePath = 'storage/log'; const fileNames = fs.readdirSync(logFilePath); // Remove the first element (0th index) const [, ...data] = fileNames; return data; } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; exports.readLogFile = async (req , res) => { try { folderName = req.body.folder; fileName = req.body.file; const logFilePath = 'storage/log/'+fileName; fs.readFile(logFilePath, 'utf8', (err, data) => { if (err) { console.error(err); res.status(500).send({'status':404,'message': err.message || "Error reading log file." ,'data': "No data"}); } res.send({'status':200 , message:"Success." ,'data': data}); }); } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; exports.viewLandingPage = async (req , res) => { try { moduleName = [ { "module":"WORKING NOTES","folder":"smc_cet_workingnotes_backend"} ]; img = [] for(const [index,val] of moduleName.entries()) { fileName = await this.readLogFileName(val.folder); for (let i = 0; i < fileName.length; i++) { filePath = 'storage/log/'+fileName[i]; const logData = fs.readFileSync(filePath); // Convert the file content to Base64 const base64Data = logData.toString('base64'); // Create Base64 URL from Base64 data const base64Url = `data:application/octet-stream;base64,${encodeURIComponent(base64Data)}`; img.push(base64Url) } moduleName[index] = await Object.assign(val,{'file':fileName , 'img':img}); }; res.render( 'module' , { 'data' : moduleName } ,function (err, html ) { res.send(html) }) } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch }; exports.deleteLogFile = async (req , res) => { try { folderName = req.body.folder; fileName = req.body.file; // folderName = 'smc_cet_creditpd_backend'; // fileName = 'msg.log.2023-07-10'; const logFilePath = 'storage/log/'+fileName; fs.unlink(logFilePath, (err) => { if (err) { console.error(`Error deleting file: ${err}`); return; } console.log('File deleted successfully.'); res.send({'status':200 , message:"Success." ,'data': 'No data'}); }); } catch(err) { res.status(500).send({'status':404, message: err.message || "Some error occurred while inserting statements." ,'data': "No data" }); } //end of try catch };