This commit is contained in:
suseendhiran17 2022-06-27 16:33:33 +05:30
parent 0951526f88
commit 12b0084d9a
8 changed files with 242 additions and 187 deletions

View File

@ -1,4 +1,4 @@
const { sequelize , LoanDetail , EntityDetails , ApplicantsDetails , ApplicantsRelationship , ResidenceAddressDetails , PropertyOwnershipIncomeConsidered , DueDiligenceCheck , TradeReferences , CheckTypeMaster , EnquiriesAndDisbursements , PropertyAndLtv , ATNWrelatedInputs , SalesPD , ATNWrelatedInputMaster ,ATNWrelationship , OtherParameterMaster ,OtherParameterMasterValue , OtherParameterRelationship , OtherParameters } = require('../models')
const { sequelize , LoanDetail , EntityDetails , ApplicantsDetails , ApplicantsRelationship , ResidenceAddressDetails , PropertyOwnershipIncomeConsidered , DueDiligenceCheck , TradeReferences , CheckTypeMaster , EnquiriesAndDisbursements , PropertyAndLtv , ATNWrelatedInputs , SalesPD , ATNWrelatedInputMaster ,ATNWrelationship , OtherParameterMaster ,OtherParameterMasterValue , OtherParameterRelationship , OtherParameters , ATNErelatedInputSubVal } = require('../models')
const { logMsg } = require('../services/logger.js');
@ -35,21 +35,43 @@ exports.createEntityDetails = async (req, res) =>
{
entityid = data.dataValues.id;
ATNWrelatedInputMasterData_arr = [];
ATNWrelatedInputMasterData_arr_val = [];
for (const value of ATNWrelatedInputMasterData)
{
atnw_master_data = {entity_id:entityid , atnw_related_input_id:value.id , atnw_related_input:value.master_name};
ATNWrelatedInputMasterData_arr.push(atnw_master_data);
if ( value.id == 9 || value.id == 10 )
{
atnw_master_value_data = { atnw_related_input :value.master_name };
ATNWrelatedInputMasterData_arr_val.push(atnw_master_value_data);
}
else
{
atnw_master_data = {entity_id:entityid , atnw_related_input_id:value.id , atnw_related_input:value.master_name};
ATNWrelatedInputMasterData_arr.push(atnw_master_data);
}
}
setTimeout(() => {
ATNWrelatedInputs.bulkCreate(ATNWrelatedInputMasterData_arr)
.then(ATNWrelatedInputMasterData_arr =>{ logMsg.info("ATNWrelatedInputs Data Creation Success for EntityId= "+entityid); })
.then(ATNWrelatedInputMasterData_arr =>
{
ATNWrelatedInputMasterData_arr.forEach( async (atnw_element) => {
if (atnw_element.atnw_related_input_id == 8) {
ATNWrelatedInputMasterData_arr_val.forEach( async (atnw_related_input_id_element) => {
Object.assign( atnw_related_input_id_element, { master_id : atnw_element.id });
ATNErelatedInputSubVal.create(atnw_related_input_id_element).then(data => {
logMsg.info("ATNWrelatedInputs_subValue Data Creation Success for EntityId= "+entityid);
})
});
}
});
logMsg.info("ATNWrelatedInputs Data Creation Success for EntityId= "+entityid);
})
.catch(err =>{ logMsg.info("ATNWrelatedInputs Data Creation Failed for EntityId= "+entityid+" Error= "+err); });
}, 500);
})
.catch(err => { logMsg.info("ATNWrelatedInputs Data Fetching Failed for EntityId= "+entityid+" Error= "+err); });
// delete from atnw_related_inputs where entity_id = 2
// otherParameter data create
OtherParameterMaster.findAll({raw: true , where : {is_active : 1}}).then(async(OtherParameterMasterData) =>
{
@ -466,7 +488,7 @@ exports.LoanNumberDetailsList = async (req, res) =>
{
try
{
LoanDetail.findAll({raw: true , where : {is_active : 1}}).then(data =>
LoanDetail.findAll({raw: true , where : { losid : req.query.losid , is_active : 1}}).then(data =>
{
if(data.length > 0)
{
@ -739,18 +761,36 @@ exports.updateATNWrelatedInputs = async (req, res) =>
{
try
{
const update_subValue_data = req.body.subValue;
delete req.body.subValue;
id = req.body.id;
delete req.body.id;
// update value
ATNWrelatedInputs.update(req.body,{ where: { id: id }}).then(data =>
{
res.send({'status':200,'message':"success",'data':data});
})
.catch(err => {
res.send({'status':404,
message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" });
});
{
logMsg.info("ATNWrelatedInputs Data Update Success "+data);
})
.catch(err => {
res.send({'status':404,
message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" });
});
if (req.body.atnw_related_input_id == 8)
{
update_subValue_data.forEach( async (update_subValue_data_element) => {
id = update_subValue_data_element.id;
delete update_subValue_data_element.id;
ATNErelatedInputSubVal.update(update_subValue_data_element,{ where: { id: id }}).then(data =>
{
res.send({'status':200,'message':"success",'data':data});
})
.catch(err => {
res.send({'status':404,
message: err.message || "Some error occurred while retrieving statements." ,'data': "No data" });
});
});
}
} catch(err) {
res.send({'status':404,message: err.message || "Some error occurred while inserting statements." ,'data': "No data" });
@ -848,7 +888,9 @@ exports.PropertyAndLtvList = async (req, res) =>
{
try
{
PropertyAndLtv.findAll({raw: true , where : {is_active : 1}}).then(data =>
PropertyAndLtv.findAll({ where : { losid : req.query.losid , is_active : 1},
include : [{ model : LoanDetail}],
}).then(data =>
{
if(data.length > 0)
{
@ -929,7 +971,9 @@ exports.ATNWrelatedInputsList = async (req, res) =>
{
try
{
ATNWrelatedInputs.findAll({raw: true , where : {entity_id : req.query.entity_id , is_active : 1}}).then(data =>
ATNWrelatedInputs.findAll({where : {entity_id : req.query.entity_id , is_active : 1},
include : [{ model: ATNErelatedInputSubVal }]
}).then(data =>
{
if(data.length > 0)
{

View File

@ -18,52 +18,21 @@ exports.Welcome = (req, res) =>
};
exports.createModel = async (req, res) =>
{
var storeData = [ ];
var a = [ "money" , "int" , "numeric" , "real" ]
var b = [ "nvarchar" ]
var c = [ "datetimeoffset" , "datetime" , "date" ]
let query = "SELECT COLUMN_NAME, DATA_TYPE FROM mainapp_staging.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='sales_PD';";
storeData = await sequelize.query(query)
storeData.forEach(async(element) => {
Object.values(element).forEach( async (element) => {
if ( a.includes(element.DATA_TYPE)) {
console.log( element.COLUMN_NAME, ": { type: DataTypes.INTEGER },");
}
if ( b.includes(element.DATA_TYPE)) {
console.log( element.COLUMN_NAME, ": { type: DataTypes.STRING },");
}
if ( c.includes(element.DATA_TYPE)) {
console.log( element.COLUMN_NAME, ": { type: DataTypes.DATE },");
}
});
});
};
exports.excel = async ( req , res ) => {
// Requiring the module
const reader = require('xlsx')
// IF(
// AND( variance_in_mv1_and_mv2 > 10% OR (mark_valuation_1 = "",mark_valuation_1 = 0, mark_valuation_2 ="",mark_valuation_2 =0,third_val_not_req="",third_val_not_req=0)),
// "Inputs Required",
// Reading our test file
const file = reader.readFile('./Commercial_CIBIL_Raw_Data 1.xlsx')
let data = []
const sheets = file.SheetNames[0]
console.log(sheets);
for(let i = 0; i < sheets.length; i++)
{
const temp = reader.utils.sheet_to_json(
file.Sheets[file.SheetNames[0]])
temp.forEach((res) => {
data.push(res)
})
}
res.send(data[0].ApplicationRefno)
}
// IF(
// OR( override="", override ="Average"),
// IF( variance_in_mv1_and_mv2 <= 10% ,( mark_valuation_1 + mark_valuation_2 )/2 ,
// ( third_val_not_req + mark_valuation_2 + mark_valuation_1 - MAX(third_val_not_req , mark_valuation_2, mark_valuation_1))/2),
// IF( override ="Lower",IF(variance_in_mv1_and_mv2 <= 10% ,
// MIN(mark_valuation_1, mark_valuation_2 ),
// MIN(third_val_not_req ,mark_valuation_2,mark_valuation_1)),
// IF( override ="Higher",IF(variance_in_mv1_and_mv2 <= 10% ,
// MAX(mark_valuation_1,mark_valuation_2),
// MAX(third_val_not_req ,mark_valuation_2,mark_valuation_1))))
// )
// )

View File

@ -0,0 +1,27 @@
'use strict'
const { Model } = require('sequelize')
module.exports = (sequelize, DataTypes) => {
class ATNErelatedInputSubVal extends Model {
}
ATNErelatedInputSubVal.init(
{
master_id : { type: DataTypes.INTEGER },
atnw_related_input : { type: DataTypes.STRING },
atnw_related_input_value : { type: DataTypes.STRING },
createdAt : { type: DataTypes.DATE },
updatedAt : { type: DataTypes.DATE },
createdby : { type: DataTypes.INTEGER },
updatedby : { type: DataTypes.INTEGER },
is_active : { type: DataTypes.INTEGER },
},
{
sequelize,
tableName: 'atnw_related_input_sub_value',
modelName: 'ATNErelatedInputSubVal',
}
)
return ATNErelatedInputSubVal
}

View File

@ -23,6 +23,12 @@ module.exports = (sequelize, DataTypes) => {
modelName: 'ATNWrelatedInputs',
}
)
ATNWrelatedInputs.associate = models => {
ATNWrelatedInputs.hasMany(models.ATNErelatedInputSubVal, {
foreignKey: 'master_id',
sourceKey : 'id'
});
}
return ATNWrelatedInputs
}

View File

@ -57,5 +57,14 @@ module.exports = (sequelize, DataTypes) => {
modelName: 'PropertyAndLtv',
}
)
PropertyAndLtv.associate = models => {
PropertyAndLtv.hasMany(models.LoanDetail, {
foreignKey: 'losid',
sourceKey : 'losid'
});
}
return PropertyAndLtv
}

View File

@ -74,6 +74,14 @@ router.get("/MainApplicantDetailsList", Entitycontroller.MainApplicantDetailsLis
* get:
* summary: Loan Numbers Details List
* description: Get loan Number Details List
* parameters:
* - in: query
* name: losid
* schema:
* type: string
* required: true
* description: id of the entity Details (primart key of entity)
* example: MW112233
* responses:
* 200:
* description: success
@ -2003,118 +2011,6 @@ router.post("/updatePropertyAndLtv", Entitycontroller.updatePropertyAndLtv);
router.get("/PropertyAndLtvList", Entitycontroller.PropertyAndLtvList);
// create LoanDetail
/**
* @swagger
* definitions:
* createLoanDetail:
* type: object
* properties:
* losid:
* type: string
* description:
* example: MW112233
* product:
* type: string
* description:
* example: LFMP
* date_of_login:
* type: integer
* description:
* example: 2021/05/05
* sourcing_channel_type:
* type: integer
* description:
* example: Connector
* sourcing_channel_name:
* type: integer
* description:
* example: Test Name
* proposal:
* type: integer
* description:
* example: Fresh
* sanction_date_of_earlier_exposure:
* type: integer
* description:
* example:
* current_outstnd_bal_of_earlier_exposure:
* type: integer
* description:
* example:
* emi_of_earlier_exposure:
* type: integer
* description:
* example:
* additional_loan_amnt_applied_for:
* type: integer
* description:
* example: 5000000
* insurance_premium_amnt_being_funded:
* type: integer
* description:
* example: 500000
* insurance_premium_loan_applied_for:
* type: integer
* description:
* example: 1
* additional_loan_amnt_applied_for_and_insu_premium:
* type: integer
* description:
* example: 5500000
* load_tenure_applied_for_months:
* type: integer
* description:
* example: 30
* rate_of_interest_per_annum:
* type: integer
* description:
* example: 1
* emi_per_lac_of_loan:
* type: integer
* description:
* example:
* purpose_of_loan:
* type: integer
* description:
* example:
* emi_of_loan_applied_for:
* type: integer
* description:
* example:
* createdby:
* type: integer
* description:
* example: 1
* updatedby:
* type: integer
* description:
* example: 1
* is_active:
* type: integer
* description:
* example: 1
*/
/**
* @swagger
* /api/createLoanDetail:
* post:
* summary: create LoanDetail
* description: create LoanDetail details
* requestBody:
* content:
* application/json:
* schema:
* $ref: '#/definitions/createLoanDetail'
* responses:
* 200:
* description: New LoanDetail inserted
* 500:
* description: failure in inserting LoanDetail
*/
router.post("/createLoanDetail", Entitycontroller.createLoanDetail);
// update Property & LTV Details
/**
* @swagger
@ -2239,6 +2135,14 @@ router.post("/updateLoanDetail", Entitycontroller.updateLoanDetail);
* get:
* summary: Dropdown loan And property & Ltv Master Api
* description: All master data for dropdown value
* parameters:
* - in: query
* name: losid
* schema:
* type: string
* required: true
* description: id of the entity Details (primart key of entity)
* example: MW112233
* responses:
* 200:
* description: success
@ -2246,7 +2150,7 @@ router.post("/updateLoanDetail", Entitycontroller.updateLoanDetail);
router.get("/loanAndLtvMaster", Mastercontroller.loanAndLtvMaster);
// CheckResultMaster select api
// atnwRelationMaster select api
/**
* @swagger
@ -2292,6 +2196,10 @@ router.get("/atnwRelationMaster", Mastercontroller.atnwRelationMaster);
* type: integer
* description:
* example: 1
* subValue:
* type: string
* description: json string
* example:
*/
/**
* @swagger

109
package-lock.json generated
View File

@ -11,12 +11,13 @@
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dist": "^0.1.2",
"dotenv": "^10.0.0",
"express": "^4.17.1",
"log4js": "^6.3.0",
"mssql": "^7.2.0",
"request": "^2.88.2",
"sequelize": "^6.6.5",
"sequelize": "^6.21.1",
"swagger-jsdoc": "^6.1.0",
"swagger-ui-express": "^4.1.6",
"winston": "^3.3.3",
@ -539,6 +540,11 @@
"@types/node": "*"
}
},
"node_modules/@types/validator": {
"version": "13.7.3",
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.3.tgz",
"integrity": "sha512-DNviAE5OUcZ5s+XEQHRhERLg8fOp8gSgvyJ4aaFASx5wwaObm+PBwTIMXiOFm1QrSee5oYwEAYb7LMzX2O88gA=="
},
"node_modules/@xmldom/xmldom": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz",
@ -1547,6 +1553,19 @@
"node": ">=8"
}
},
"node_modules/dist": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/dist/-/dist-0.1.2.tgz",
"integrity": "sha512-TmsZfJybRs3IZC8SL/rLU3KYanR31BNPlCutao8MpmiN6S47WN2eEBNSdSafi0cQtdMAixgNXfrqZyuqkz/sOQ==",
"dependencies": {
"filesize": "~1.6.6",
"optimist": "~0.3.5",
"uglify-js": "~1.3.4"
},
"bin": {
"dist": "bin/dist.js"
}
},
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@ -1770,6 +1789,14 @@
"moment": "^2.29.1"
}
},
"node_modules/filesize": {
"version": "1.6.7",
"resolved": "https://registry.npmjs.org/filesize/-/filesize-1.6.7.tgz",
"integrity": "sha512-A/ANn+qBa3WmjgxHmyKfQbQ+AFwVoKrWwCGrNVjWJJMZclBrvhZ+85/xLxcTjn/G70PjbDKpVDewCHn+ShMyTA==",
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@ -3206,6 +3233,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/optimist": {
"version": "0.3.7",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
"integrity": "sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==",
"dependencies": {
"wordwrap": "~0.0.2"
}
},
"node_modules/p-cancelable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
@ -3677,9 +3712,9 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/sequelize": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.15.0.tgz",
"integrity": "sha512-Ks2jSaKMfICZ8jMlhH401fLw5ikE8Vqt6slcR2peKOn4lA3H+LRfXdlnAl/CUDO1MflFl7PhifnzPxwhamciGQ==",
"version": "6.21.1",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.21.1.tgz",
"integrity": "sha512-vbRreGOdBFLoGUrSINaNVLnaGZGSjhLq2b80tBezuqxbumMG3V2QkCnsvgggQ+LoRVYxERwWin1BL7YO4b5PSQ==",
"funding": [
{
"type": "opencollective",
@ -3688,9 +3723,10 @@
],
"dependencies": {
"@types/debug": "^4.1.7",
"@types/validator": "^13.7.1",
"debug": "^4.3.3",
"dottie": "^2.0.2",
"inflection": "^1.13.1",
"inflection": "^1.13.2",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"moment-timezone": "^0.5.34",
@ -4315,6 +4351,14 @@
"is-typedarray": "^1.0.0"
}
},
"node_modules/uglify-js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.5.tgz",
"integrity": "sha512-YPX1DjKtom8l9XslmPFQnqWzTBkvI4N0pbkzLuPZZ4QTyig0uQqvZz9NgUdfEV+qccJzi7fVcGWdESvRIjWptQ==",
"bin": {
"uglifyjs": "bin/uglifyjs"
}
},
"node_modules/undefsafe": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
@ -4656,6 +4700,14 @@
"node": ">=0.8"
}
},
"node_modules/wordwrap": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@ -5271,6 +5323,11 @@
"@types/node": "*"
}
},
"@types/validator": {
"version": "13.7.3",
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.3.tgz",
"integrity": "sha512-DNviAE5OUcZ5s+XEQHRhERLg8fOp8gSgvyJ4aaFASx5wwaObm+PBwTIMXiOFm1QrSee5oYwEAYb7LMzX2O88gA=="
},
"@xmldom/xmldom": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz",
@ -6036,6 +6093,16 @@
"integrity": "sha512-S55LzUl8HUav8l9E2PBTlC5PAJrHK7tkM+XXFGD+fbsbkTzhCpG6K05LxJcUOEWzMa4v6ptcMZ9s3fOdJDu0Zw==",
"optional": true
},
"dist": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/dist/-/dist-0.1.2.tgz",
"integrity": "sha512-TmsZfJybRs3IZC8SL/rLU3KYanR31BNPlCutao8MpmiN6S47WN2eEBNSdSafi0cQtdMAixgNXfrqZyuqkz/sOQ==",
"requires": {
"filesize": "~1.6.6",
"optimist": "~0.3.5",
"uglify-js": "~1.3.4"
}
},
"doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@ -6223,6 +6290,11 @@
"moment": "^2.29.1"
}
},
"filesize": {
"version": "1.6.7",
"resolved": "https://registry.npmjs.org/filesize/-/filesize-1.6.7.tgz",
"integrity": "sha512-A/ANn+qBa3WmjgxHmyKfQbQ+AFwVoKrWwCGrNVjWJJMZclBrvhZ+85/xLxcTjn/G70PjbDKpVDewCHn+ShMyTA=="
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@ -7323,6 +7395,14 @@
"is-wsl": "^2.1.1"
}
},
"optimist": {
"version": "0.3.7",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
"integrity": "sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==",
"requires": {
"wordwrap": "~0.0.2"
}
},
"p-cancelable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
@ -7692,14 +7772,15 @@
}
},
"sequelize": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.15.0.tgz",
"integrity": "sha512-Ks2jSaKMfICZ8jMlhH401fLw5ikE8Vqt6slcR2peKOn4lA3H+LRfXdlnAl/CUDO1MflFl7PhifnzPxwhamciGQ==",
"version": "6.21.1",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.21.1.tgz",
"integrity": "sha512-vbRreGOdBFLoGUrSINaNVLnaGZGSjhLq2b80tBezuqxbumMG3V2QkCnsvgggQ+LoRVYxERwWin1BL7YO4b5PSQ==",
"requires": {
"@types/debug": "^4.1.7",
"@types/validator": "^13.7.1",
"debug": "^4.3.3",
"dottie": "^2.0.2",
"inflection": "^1.13.1",
"inflection": "^1.13.2",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"moment-timezone": "^0.5.34",
@ -8149,6 +8230,11 @@
"is-typedarray": "^1.0.0"
}
},
"uglify-js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.5.tgz",
"integrity": "sha512-YPX1DjKtom8l9XslmPFQnqWzTBkvI4N0pbkzLuPZZ4QTyig0uQqvZz9NgUdfEV+qccJzi7fVcGWdESvRIjWptQ=="
},
"undefsafe": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
@ -8422,6 +8508,11 @@
"resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
},
"wordwrap": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw=="
},
"wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",

View File

@ -12,12 +12,13 @@
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dist": "^0.1.2",
"dotenv": "^10.0.0",
"express": "^4.17.1",
"log4js": "^6.3.0",
"mssql": "^7.2.0",
"request": "^2.88.2",
"sequelize": "^6.6.5",
"sequelize": "^6.21.1",
"swagger-jsdoc": "^6.1.0",
"swagger-ui-express": "^4.1.6",
"winston": "^3.3.3",