project_monitor/app/controllers/test.controller.js
suseendhiran17 6e90549883 suseendhiran
2022-09-15 18:21:50 +05:30

131 lines
6.1 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
{
// var dbConfig = {
// server:process.env.HOST,
// database:process.env.DATABASE,
// user:process.env.USER_NAME,
// password:process.env.PASSWORD,
// port: Number(process.env.PORT)
// };
// await sql.connect(dbConfig)
// result = await sql.query`select * from applicants where id = 66`
// console.log(result)
token_data = await TestHelper.TokenAPI();
apiArr = [ ];
serverArr = [ ];
dbArr = [ ];
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 { reqObj = {url: URL,method: object.method,json: true,body: request_object} }
request(reqObj, async function (error, response, body) {
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);
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 { reqObj = {url: URL,method: object.method,json: true,body: request_object} }
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
};