suseendhiran
This commit is contained in:
parent
d756ed3e58
commit
6e90549883
@ -2,6 +2,7 @@ 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');
|
||||
|
||||
|
||||
|
||||
@ -11,6 +12,18 @@ 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 = [ ];
|
||||
@ -18,39 +31,50 @@ exports.APIstatus = async (req, res) =>
|
||||
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 , "Status" : "Down"}); StatusFailArr.push(token_data.status) }
|
||||
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;
|
||||
request_header = "Bearer"+" "+token_data.data.token;
|
||||
if (object.header == 1) { reqObj = {url: URL, method: object.method,json: true,body: request_object,headers : { 'Content-Type' : 'application/json' , 'Authorization' : request_header }} }
|
||||
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.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 == 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 );
|
||||
}
|
||||
}
|
||||
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 );
|
||||
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.send({'status':404,
|
||||
message: err.message || "Some error occurred while inserting statements." ,'data': "No data"
|
||||
});
|
||||
res.render( 'error' , { data : err } , function (err, html ) {
|
||||
res.send(html)
|
||||
})
|
||||
} //end of try catch
|
||||
|
||||
};
|
||||
@ -78,12 +102,18 @@ exports.SingleApiStatus = async (req, res) =>
|
||||
reqObj = { };
|
||||
URL = object.url;
|
||||
request_object = object.requestObject;
|
||||
request_header = "Bearer"+" "+token_data.data.token;
|
||||
if (object.header == 1) { reqObj = {url: URL, method: object.method,json: true,body: request_object,headers : { 'Content-Type' : 'application/json' , 'Authorization' : request_header }} }
|
||||
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}) }
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
16
app/views/error.ejs
Normal file
16
app/views/error.ejs
Normal file
@ -0,0 +1,16 @@
|
||||
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
|
||||
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||
<!------ Include the above in your HEAD tag ---------->
|
||||
<style>
|
||||
#main {
|
||||
height: 100vh;
|
||||
}
|
||||
</style>
|
||||
<title>error</title>
|
||||
<div class="d-flex justify-content-center align-items-center" id="main">
|
||||
<h1 class="mr-3 pr-3 align-top border-right inline-block align-content-center">404</h1>
|
||||
<div class="inline-block align-middle">
|
||||
<h2 class="font-weight-normal lead" id="desc"><%= data.message %></h2>
|
||||
</div>
|
||||
</div>
|
||||
@ -240,9 +240,9 @@
|
||||
<% if ( down == 0) { %>
|
||||
<link rel="icon" type ="image/png" href="data:image/png;base64,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">
|
||||
<% } %>
|
||||
<!-- <% if ( down == 1) { %>
|
||||
<link rel="stylesheet" type ="text/css" href="//static.zohocdn.com/chat/source/officechat/styles/loadingpage-min.243202ee25f1a5bb3db367d2338ab25e.css">
|
||||
<% } %> -->
|
||||
<% if ( down == 1) { %>
|
||||
<link rel="icon" type ="image/png" href="data:image/png;base64,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">
|
||||
<% } %>
|
||||
</head>
|
||||
<body>
|
||||
<div class = "header">
|
||||
@ -369,14 +369,13 @@
|
||||
alertify.alert(response.Api+" called", () => {
|
||||
// alertify.message('OK');
|
||||
}).set('title', 'Status')
|
||||
// alert(response.Api+" called");
|
||||
if (response.Status == "Up")
|
||||
{
|
||||
var success = '<i class="dot" style="font-size:14px;color: #3bd671 !important;height:15px;width:15px;"></i> <b>'+response.Status+'</b>'
|
||||
}
|
||||
else
|
||||
{
|
||||
var success = '<i class="dot1" style="font-size:14px;color: #3bd671 !important;height:15px;width:15px;"></i> <b>'+response.Status+'</b>'
|
||||
var success = '<i class="dot1" style="font-size:14px;color: red;height:15px;width:15px;"></i> <b1>'+response.Status+'</b1>'
|
||||
}
|
||||
$(evt.target).parent().parent("tr").find("td:nth-child(2)").html(response.StatusCode);
|
||||
$(evt.target).parent().parent("tr").find("td:nth-child(3)").html(success);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user