Skip to content

Commit

Permalink
co-732 health API for program Service
Browse files Browse the repository at this point in the history
  • Loading branch information
vaivk369 committed Dec 13, 2023
1 parent df5b3bf commit a9404e1
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 24 deletions.
50 changes: 43 additions & 7 deletions src/helpers/responseUtil.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ const logger = require('sb_logger_util_v2');
const uuid = require("uuid/v1");
const stackTrace_MaxLimit = 500;
const _ = require('lodash');
const messageUtils = require('../service/messageUtil');
const responseCode = messageUtils.RESPONSE_CODE;
const loggerService = require('../service/loggerService');


const successResponse = (data) => {
Expand All @@ -10,21 +13,52 @@ const successResponse = (data) => {
response.ver = data.apiVersion
response.ts = new Date()
response.params = getParams(data.msgid, data.resmsgid, 'successful', null, null)
response.responseCode = data.responseCode || 'OK'
response.result = data.result
response.responseCode = data.responseCode || responseCode.SUCCESS
response.result = data.result || {}
return response
}

const errorResponse = (data,errCode) => {
const errorResponse = (data) => {
var response = {}
response.id = data.apiId
response.ver = data.apiVersion
response.ts = new Date()
response.params = getParams(data.msgid, data.resmsgid, 'failed', data.errCode, data.errMsg)
response.responseCode = errCode+'_'+data.responseCode
response.result = data.result
response.responseCode = data.responseCode
response.result = data.result || {};
return response
}

const responseObject = (data) => {
var response = {}
const responseStatus = (data.errCode) ? 'failed' : 'successfull'
const errorCode = data.errCode || null
const errMsg = data.errMsg || null
response.id = data.apiId
response.ver = data.apiVersion
response.ts = new Date()
response.params = getParams(data.msgid, data.resmsgid, responseStatus, errorCode, errMsg)
response.responseCode = data.responseCode
response.result = data.result || {};
return response
}
const handleSuccessResponse = (req, response, logObject) => {
var rspObj = req.rspObj
loggerService.exitLog({responseCode: rspObj.responseCode}, logObject);
return response.status(200).send(responseObject(rspObj));
}

const handleErrorResponse = (req, response, logObject, error) => {
var rspObj = req.rspObj
console.log(`${rspObj.apiId}`, JSON.stringify(error))
if(error && error.response && error.response.data) {
console.log(`${rspObj.apiId}`, JSON.stringify(error.response.data));
}
const statusCode = rspObj.statusCode || 500;
rspObj.responseCode = rspObj.responseCode || responseCode.SERVER_ERROR;
loggerError(rspObj, rspObj.errCode);
loggerService.exitLog({responseCode: rspObj.responseCode}, logObject);
return response.status(statusCode).send(responseObject(rspObj));
}

const getParams = (msgId = null, resmsgId = null, status, errCode, msg) => {
var params = {}
Expand Down Expand Up @@ -52,5 +86,7 @@ module.exports = {
successResponse,
errorResponse,
getParams,
loggerError
loggerError,
handleSuccessResponse,
handleErrorResponse
}
3 changes: 0 additions & 3 deletions src/models/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,8 @@ fs.readdirSync(__dirname)
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

db.program.hasMany(db.nomination, {foreignKey: 'program_id'});
db.nomination.belongsTo(db.program, {foreignKey: 'program_id'});

HelperService.AttachModelHooks(db);

module.exports = db;
8 changes: 3 additions & 5 deletions src/service/messageUtil.js
Original file line number Diff line number Diff line change
Expand Up @@ -514,10 +514,9 @@ exports.EMAIL = {
}

exports.HEALTH_CHECK = {
EK_STEP: {
NAME: 'ekstep.api',
FAILED_CODE: 'CONTENT_PROVIDER_HEALTH_FAILED',
FAILED_MESSAGE: 'Content provider service is not healthy'
POSTGRES_DB: {
FAILED_CODE: 'POSTGRES_HEALTH_FAILED',
FAILED_MESSAGE: 'Postgres db is not connected'
},
LEARNER_SERVICE: {
NAME: 'learnerservice.api',
Expand All @@ -539,7 +538,6 @@ exports.DIALCODE = {
FAILED_MESSAGE: 'Generate dialcode failed',
MISSING_COUNT: 'ERR_DIALCODE_GENERATE_COUNT_ERROR',
MISSING_COUNT_MESSAGE: 'Required fields count is missing or invalid'

},

LIST: {
Expand Down
25 changes: 16 additions & 9 deletions src/service/programService.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const uuid = require("uuid/v1");
const logger = require('sb_logger_util_v2');
const SbCacheManager = require('sb_cache_manager');
const messageUtils = require('./messageUtil');
const { successResponse, errorResponse, loggerError } = require('../helpers/responseUtil');
const { successResponse, errorResponse, loggerError, handleSuccessResponse, handleErrorResponse } = require('../helpers/responseUtil');
const Sequelize = require('sequelize');
const moment = require('moment');
const loggerService = require('./loggerService');
Expand All @@ -15,6 +15,7 @@ const contentTypeMessages = messageUtils.CONTENT_TYPE;
const configurationMessages = messageUtils.CONFIGURATION;
const errorCodes = messageUtils.ERRORCODES;
const model = require('../models');
console.log(model);
const { from } = require("rxjs");

const {
Expand Down Expand Up @@ -3070,19 +3071,25 @@ function syncUsersToRegistry(req, response) {
rspObj.responseCode = "Failed to get the programs";
rspObj.result = {};
loggerService.exitLog({responseCode: rspObj.responseCode}, logObject);
return response.status(400).send(errorResponse(rspObj,rspObj.errCode));
return response.status(500).send(errorResponse(rspObj,rspObj.errCode));
});
}


function health(req, response) {
return response.status(200).send(successResponse({
apiId: 'api.program.health',
ver: '1.0',
msgid: uuid(),
responseCode: 'OK',
result: {}
}));
// check if prostgres up and running
model.sequelize.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
return handleSuccessResponse(req, response, {})
})
.catch(err => {
const postgresHealthError = messageUtils.HEALTH_CHECK.POSTGRES_DB;
req.rspObj.errCode = postgresHealthError.FAILED_CODE
req.rspObj.errMsg = postgresHealthError.FAILED_MESSAGE
req.rspObj.result = err
return handleErrorResponse(req, response, {})
});
}


Expand Down

0 comments on commit a9404e1

Please sign in to comment.