project_monitor/app/controllers/test.controller.js
suseendhiran17 e803621fdc susee:log
2023-07-19 16:08:30 +05:30

273 lines
10 KiB
JavaScript

const { sequelize } = require('../models')
const TestHelper = require('../services/test.helper.js');
const { logMsg } = require('../services/logger.js');
const request = require('request');
var sql = require('mssql');
const fs = require('fs');
const path = require('path');
// api status check Api
exports.APIstatus = async (req, res) =>
{
try
{
// call token api
token = await TestHelper.NewToken();
token_data = {};
if (token) {
token_data = {'status':200,'message':"success",'data':token}
}
else {
token_data = {'status':404,'message':"failed",'data':"No data"}
}
// store api status only
apiArr = [ ];
// store server status only
serverArr = [ ];
// store database status only
dbArr = [ ];
// store fail status only
StatusFailArr = [ ];
console.log(process.env.STATUSARRAY);
ApiData = await JSON.parse(process.env.STATUSARRAY);
if (token_data.status == 200) { apiArr.push({ "Api" : "Token API" , "StatusCode" : token_data.status , "Status" : "Up"}); }
else { apiArr.push({ "Api" : "Token API" , "StatusCode" : token_data.status || 502 , "Status" : "Down"}); StatusFailArr.push(token_data.status) }
for (const object of ApiData)
{
reqObj = { };
URL = object.url;
request_object = object.requestObject;
if (object.header == 1 && token_data.status == 200) { request_header = "Bearer"+" "+token; reqObj = {url: URL, method: object.method,json: true,body: request_object,headers : { 'Content-Type' : 'application/json' , 'Authorization' : request_header }} }
else {
if (object.name == "SMC Front End") { reqObj = {url: URL,method: object.method} }
else { reqObj = {url: URL,method: object.method,json: true,body: request_object} }
}
request(reqObj, async function (error, response, body) {
// because some times some api's could not send respond
if (response == undefined)
{
if (object.type == "api") { apiArr.push({ "Api" : object.name , "StatusCode" : 502, "Status" : "Down"}); StatusFailArr.push("down") }
if (object.type == "server") { serverArr.push({ "Api" : object.name , "StatusCode" : 502 , "Status" : "Down"}); StatusFailArr.push("down") }
if (object.type == "db") { dbArr.push({ "Api" : object.name , "StatusCode" : 502 , "Status" : "Down"}); StatusFailArr.push("down") }
if (ApiData.length + 1 == apiArr.length + serverArr.length + dbArr.length) {
await TestHelper.HTML( req , res , apiArr , serverArr , dbArr , StatusFailArr );
}
}
else
{
if (response.statusCode == 200)
{
if (object.type == "api") { apiArr.push({ "Api" : object.name , "StatusCode" : response.statusCode , "Status" : "Up"}); }
if (object.type == "server") { serverArr.push({ "Api" : object.name , "StatusCode" : response.statusCode , "Status" : "Up"}); }
if (object.type == "db") { dbArr.push({ "Api" : object.name , "StatusCode" : response.statusCode , "Status" : "Up"}); }
}
if (response.statusCode != 200)
{
if (object.type == "api") { apiArr.push({ "Api" : object.name , "StatusCode" : response.statusCode, "Status" : "Down"}); StatusFailArr.push(response.statusCode) }
if (object.type == "server") { serverArr.push({ "Api" : object.name , "StatusCode" : response.statusCode , "Status" : "Down"}); StatusFailArr.push(response.statusCode) }
if (object.type == "db") { dbArr.push({ "Api" : object.name , "StatusCode" : response.statusCode , "Status" : "Down"}); StatusFailArr.push(response.statusCode) }
}
if (ApiData.length + 1 == apiArr.length + serverArr.length + dbArr.length) {
await TestHelper.HTML( req , res , apiArr , serverArr , dbArr , StatusFailArr );
}
}
})
};
}
catch(err)
{
res.render( 'error' , { data : err } , function (err, html ) {
res.send(html)
})
} //end of try catch
};
// Single Api status check Api
exports.SingleApiStatus = async (req, res) =>
{
try
{
ApiName = req.body.api;
ApiData = JSON.parse(process.env.STATUSARRAY);
// call token api
// token_data = await TestHelper.TokenAPI();
token = await TestHelper.NewToken();
token_data = {};
if (token) {
token_data = {'status':200,'message':"success",'data':token}
}
else {
token_data = {'status':404,'message':"failed",'data':"No data"}
}
if (ApiName == "Token API")
{
if (token_data.status == 200) { res.send({ "Api" : "Token API" , "StatusCode" : token_data.status , "Status" : "Up" , "success" : true}) }
else { res.send({ "Api" : "Token API" , "StatusCode" : token_data.status , "Status" : "Down" , "success" : true}) }
}
else
{
ApiData.forEach(async(object) =>
{
if (ApiName == object.name)
{
reqObj = { };
URL = object.url;
request_object = object.requestObject;
if (object.header == 1 && token_data.status == 200) { request_header = "Bearer"+" "+token; reqObj = {url: URL, method: object.method,json: true,body: request_object,headers : { 'Content-Type' : 'application/json' , 'Authorization' : request_header }} }
else
{
if (object.name == "SMC Front End") { reqObj = {url: URL,method: object.method} }
else { reqObj = {url: URL,method: object.method,body: request_object,json: true} }
}
request(reqObj, function (error, response, body) {
if (response == undefined)
{
res.send({ "Api" : object.name , "StatusCode" : 502 , "Status" : "Down" , "success" : true})
}
else
{
if (response.statusCode == 200) { res.send({ "Api" : object.name , "StatusCode" : response.statusCode , "Status" : "Up" , "success" : true}) }
else { res.send({ "Api" : object.name , "StatusCode" : response.statusCode , "Status" : "Down" , "success" : true}) }
}
})
}
});
}
}
catch(err)
{
res.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":"MAINAPP","folder":"smc_cet_mainapp_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
};