273 lines
10 KiB
JavaScript
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
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|