From f86efad33e4e72f2ecf90076624975da2c511858 Mon Sep 17 00:00:00 2001 From: suseendhiran17 <58357088+suseendhiran17@users.noreply.github.com> Date: Wed, 19 Jul 2023 16:06:02 +0530 Subject: [PATCH] susee:log --- app/controllers/cibil.controller.js | 116 ++++++++++ app/routes/routes.js | 8 + app/views/module.ejs | 337 ++++++++++++++++++++++++++++ package-lock.json | 88 +++++++- package.json | 3 + server.js | 6 +- 6 files changed, 551 insertions(+), 7 deletions(-) create mode 100644 app/views/module.ejs diff --git a/app/controllers/cibil.controller.js b/app/controllers/cibil.controller.js index 862d67b..190e34d 100644 --- a/app/controllers/cibil.controller.js +++ b/app/controllers/cibil.controller.js @@ -4,6 +4,8 @@ const Helper = require('../services/cibil.controller.helper.js'); const DataInsertHelper = require('../services/cibil.datainsert.helper.js'); const { Op } = require('sequelize'); const moment = require('moment'); +const fs = require('fs'); +const path = require('path'); // landing page list of all pan number and reference number from commercial & consumer against losid @@ -834,6 +836,120 @@ exports.LandingPageDetailsList = async (req, res) => +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":"CIBIL","folder":"smc_cet_cibil_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 +}; + + + + diff --git a/app/routes/routes.js b/app/routes/routes.js index 0e2d11a..19caf24 100644 --- a/app/routes/routes.js +++ b/app/routes/routes.js @@ -415,6 +415,14 @@ router.get("/ConsolidatedActiveAndClosedLoansReviewAction", Cibilcontroller.Cons router.post("/LoansDetailsMergeUnmergeApi", Cibilcontroller.LoansDetailsMergeUnmergeApi); +router.get("/getfilename", Cibilcontroller.readLogFileName); + +router.post("/readlogs", Cibilcontroller.readLogFile); + +router.get("/view", Cibilcontroller.viewLandingPage); + +router.post("/deletelog", Cibilcontroller.deleteLogFile); + // routes started here app.use('/api', router); }; diff --git a/app/views/module.ejs b/app/views/module.ejs new file mode 100644 index 0000000..0c2c6f4 --- /dev/null +++ b/app/views/module.ejs @@ -0,0 +1,337 @@ + + + + + + + + + + +
+ <% for (let i = 0; i < data.length; i++) { %> +
+
+
+

+ LOGS + +

+
+ <%= data[i].file.length %> +
+
+
+ <% for (let j = 0; j < data[i].file.length; j++) { %> +
+ +
+ <% } %> +
+
+ Close +
+
+
+
+
+ <% } %> +
+ + + + + + + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f651a78..139ce43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -674,7 +674,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -1001,7 +1000,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1010,14 +1008,12 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1114,7 +1110,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1356,6 +1351,14 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "requires": { + "jake": "^10.8.5" + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -1488,6 +1491,32 @@ "moment": "^2.29.1" } }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1556,6 +1585,11 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -2026,6 +2060,24 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "dependencies": { + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + } + } + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2643,6 +2695,15 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -3475,6 +3536,21 @@ "prepend-http": "^2.0.0" } }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index ccb9202..bb43de8 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,13 @@ "body-parser": "^1.19.0", "cors": "^2.8.5", "dotenv": "^10.0.0", + "ejs": "^3.1.9", "express": "^4.17.1", + "fs": "0.0.1-security", "log4js": "^6.3.0", "moment": "^2.29.4", "mssql": "^7.2.0", + "path": "^0.12.7", "request": "^2.88.2", "sequelize": "^6.6.5", "swagger-jsdoc": "^6.1.0", diff --git a/server.js b/server.js index 2c1769f..5234a09 100644 --- a/server.js +++ b/server.js @@ -1,6 +1,7 @@ require('dotenv').config(); const express = require('express') -const app = express() +const app = express(); +const path = require('path'); //it is used to clear cache app.use(function(req, res, next) { res.set("Cache-Control", "no-cache, no-store, must-revalidate, max-age=0") @@ -10,6 +11,9 @@ app.use(function(req, res, next) { }) const {logMsg} = require('./app/services/logger.js'); +app.set('views', path.join(__dirname, 'app\\views')); +app.set('view engine', 'ejs'); + const swaggerJsdoc = require('swagger-jsdoc'); const swaggerUi = require('swagger-ui-express');