project_monitor/app/controllers/test.controller.js
suseendhiran17 c36c44f89a suseendhiran
2022-09-23 16:25:21 +05:30

146 lines
6.5 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');
// api status check Api
exports.APIstatus = async (req, res) =>
{
try
{
// call token api
token_data = await TestHelper.TokenAPI();
// store api status only
apiArr = [ ];
// store server status only
serverArr = [ ];
// store database status only
dbArr = [ ];
// store fail status only
StatusFailArr = [ ];
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_data.data.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();
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_data.data.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
};