diff --git a/src/models/form_config.js b/src/models/form_config.js index 3b3c0396bc594b9f9c8fb04288872038f937c89e..11ca943531e0d94d90a8d99da5447a14e880f90c 100644 --- a/src/models/form_config.js +++ b/src/models/form_config.js @@ -3,31 +3,36 @@ module.exports = function(sequelize, DataTypes) { id: { type: DataTypes.UUID, allowNull: false, - primaryKey: true }, channel: { type: DataTypes.STRING, - allowNull: false + allowNull: false, + primaryKey: true }, objectype: { type: DataTypes.STRING, - allowNull: false + allowNull: false, + primaryKey: true }, primarycategory: { - type: DataTypes.STRING + type: DataTypes.STRING, + primaryKey: true }, status: { type: DataTypes.ENUM("Active", "Inactive"), allowNull: false }, context: { - type: DataTypes.STRING + type: DataTypes.STRING, + primaryKey: true }, context_type: { - type: DataTypes.STRING + type: DataTypes.STRING, + primaryKey: true }, operation: { - type: DataTypes.STRING + type: DataTypes.STRING, + primaryKey: true }, data: { type: DataTypes.JSONB diff --git a/src/service/formConfig.js b/src/service/formConfig.js index e3d526ecded00ffbc526e997ea4f8783551b8ed2..cae6ae5a8ad6ad5955498c2dde132d0037a2be15 100644 --- a/src/service/formConfig.js +++ b/src/service/formConfig.js @@ -5,7 +5,7 @@ const messageUtils = require('./messageUtil'); const Sequelize = require('sequelize'); const moment = require('moment'); const responseCode = messageUtils.RESPONSE_CODE; -const programMessages = messageUtils.PROGRAM; +const formMessages = messageUtils.FORM; const errorCodes = messageUtils.ERRORCODES; const model = require('../models'); const loggerService = require('./loggerService'); @@ -23,12 +23,12 @@ function convertToLowerCase(obj, keys){ async function getForm(req, response) { const logObject = { traceId : req.headers['x-request-id'] || '', - message : programMessages.FORM.READ.INFO + message : formMessages.READ.INFO } loggerService.entryLog(data, logObject); if (!req.body.request || !req.body.request.context || !req.body.request.context_type) { - rspObj.errCode = programMessages.FORM.READ.MISSING_CODE - rspObj.errMsg = programMessages.FORM.READ.MISSING_MESSAGE + rspObj.errCode = formMessages.READ.MISSING_CODE + rspObj.errMsg = formMessages.READ.MISSING_MESSAGE rspObj.responseCode = responseCode.CLIENT_ERROR; loggerError('', rspObj, errCode+errorCodes.CODE1); loggerService.exitLog({responseCode: rspObj.responseCode, errCode: errCode+errorCodes.CODE1}, logObject); @@ -95,6 +95,98 @@ async function getForm(req, response) { }) } +async function createForm(req, response) { + const logObject = { + traceId : req.headers['x-request-id'] || '', + message : formMessages.CREATE.INFO + } + loggerService.entryLog(data, logObject); + if (!req.body.request || !req.body.request.context || !req.body.request.context_type || !req.body.request.data) { + rspObj.errCode = formMessages.CREATE.MISSING_CODE + rspObj.errMsg = formMessages.CREATE.MISSING_MESSAGE + rspObj.responseCode = responseCode.CLIENT_ERROR + loggerError('',rspObj,errCode+errorCodes.CODE1); + loggerService.exitLog({responseCode: rspObj.responseCode}, logObject); + return response.status(400).send(errorResponse(rspObj,errCode+errorCodes.CODE1)) + } + const data = _.pick(req.body.request, ['context', 'context_type', 'objectype', 'channel', 'operation', 'component', 'primarycategory']); + convertToLowerCase(data, ['context', 'context_type', 'operation']); + const insertObj = req.body.request; + insertObj.id = uuid(); + insertObj.channel = data.channel || '*'; + insertObj.objectype = data.objectype || '*'; + insertObj.primarycategory = data.primarycategory || '*'; + insertObj.operation = data.operation || '*'; + insertObj.component = data.component || 'portal'; + insertObj.created_on = new Date(); + + model.formConfig.create().then(data => { + rspObj.result = { + 'id': res.dataValues.id + } + rspObj.responseCode = 'OK'; + res.status(200).send(successResponse(rspObj)); + }) + .catch(error => { + const errCode = formMessages.EXCEPTION_CODE+'_'+formMessages.CREATE.EXCEPTION_CODE + rspObj.errMsg = formMessages.CREATE.FAILED_MESSAGE + rspObj.responseCode = formMessages.CREATE.FAILED_CODE; + rspObj.result = {}; + loggerService.exitLog({responseCode: rspObj.responseCode}, logObject); + loggerError('',rspObj,errCode+errorCodes.CODE3); + return response.status(500).send(errorResponse(rspObj,errCode+errorCodes.CODE3)); + }) +} + +async function updateForm(req, response) { + const logObject = { + traceId : req.headers['x-request-id'] || '', + message : formMessages.READ.INFO + } + loggerService.entryLog(data, logObject); + if (!req.body.request || !req.body.request.data || !req.body.request.context || !req.body.request.context_type) { + rspObj.errCode = formMessages.UPDATE.MISSING_CODE + rspObj.errMsg = formMessages.UPDATE.MISSING_MESSAGE + rspObj.responseCode = responseCode.CLIENT_ERROR; + loggerError('', rspObj, errCode+errorCodes.CODE1); + loggerService.exitLog({responseCode: rspObj.responseCode, errCode: errCode+errorCodes.CODE1}, logObject); + return response.status(400).send(errorResponse(rspObj,errCode+errorCodes.CODE1)) + } + const data = _.pick(req.body.request, ['context', 'context_type', 'objectype', 'channel', 'operation', 'component', 'primarycategory']); + convertToLowerCase(data, ['context', 'context_type', 'operation']); + const query = { + channel: data.channel || '*', + objectype: data.objectype || '*', + operation: data.operation || '*', + primarycategory: data.primarycategory || '*', + context: data.context, + context_type: data.context_type, + component: data.component, + } + + const updateValue = { + data: JSON.stringify(data.data), + updatedOn: new Date(), + }; + + model.formConfig.update(query, updateValue).then(data => { + rspObj.result = { + 'id': res.dataValues.id + } + rspObj.responseCode = 'OK'; + res.status(200).send(successResponse(rspObj)); + }) + .catch(error => { + const errCode = formMessages.EXCEPTION_CODE+'_'+formMessages.CREATE.EXCEPTION_CODE + rspObj.errMsg = formMessages.CREATE.FAILED_MESSAGE + rspObj.responseCode = formMessages.CREATE.FAILED_CODE; + rspObj.result = {}; + loggerService.exitLog({responseCode: rspObj.responseCode}, logObject); + loggerError('',rspObj,errCode+errorCodes.CODE3); + return response.status(500).send(errorResponse(rspObj,errCode+errorCodes.CODE3)); + }) +} + function loggerError(errmsg,data,errCode) { var errObj = {} errObj.eid = 'Error' diff --git a/src/service/messageUtil.js b/src/service/messageUtil.js index 11033e06d68322f61ad8d15bf459bd3b091b3336..fcc7126f253bb58d2f4846373da8ba42b5433e9f 100644 --- a/src/service/messageUtil.js +++ b/src/service/messageUtil.js @@ -647,6 +647,7 @@ exports.DATASET = { } exports.FORM = { + EXCEPTION_CODE: 'FORM', READ: { MISSING_CODE: 'ERR_GET_FORM_DATA', MISSING_MESSAGE: 'Required fields to get form are missing', @@ -655,6 +656,7 @@ exports.FORM = { INFO: 'Get form config' }, CREATE: { + EXCEPTION_CODE: 'FRMCRT', MISSING_CODE: 'ERR_CREATE_FORM_DATA', MISSING_MESSAGE: 'Required fields for creating form data are missing', FAILED_CODE: 'ERR_CREATE_FORM_DATA_FAILED',