diff --git a/app/controllers/entity.applicant.controller.js b/app/controllers/entity.applicant.controller.js index 768fcd7..06935ac 100644 --- a/app/controllers/entity.applicant.controller.js +++ b/app/controllers/entity.applicant.controller.js @@ -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) { diff --git a/app/controllers/test.controller.js b/app/controllers/test.controller.js index f5153ac..eed5e80 100644 --- a/app/controllers/test.controller.js +++ b/app/controllers/test.controller.js @@ -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)))) +// ) +// ) \ No newline at end of file diff --git a/app/models/ATNWrelatedInputSubVal.js b/app/models/ATNWrelatedInputSubVal.js new file mode 100644 index 0000000..4f5beca --- /dev/null +++ b/app/models/ATNWrelatedInputSubVal.js @@ -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 +} \ No newline at end of file diff --git a/app/models/ATNWrelatedInputs.js b/app/models/ATNWrelatedInputs.js index cff6c28..1a0e0ce 100644 --- a/app/models/ATNWrelatedInputs.js +++ b/app/models/ATNWrelatedInputs.js @@ -23,6 +23,12 @@ module.exports = (sequelize, DataTypes) => { modelName: 'ATNWrelatedInputs', } ) + ATNWrelatedInputs.associate = models => { + ATNWrelatedInputs.hasMany(models.ATNErelatedInputSubVal, { + foreignKey: 'master_id', + sourceKey : 'id' + }); + } return ATNWrelatedInputs } \ No newline at end of file diff --git a/app/models/PropertyAndLtv.js b/app/models/PropertyAndLtv.js index 80f865a..b9e1ab5 100644 --- a/app/models/PropertyAndLtv.js +++ b/app/models/PropertyAndLtv.js @@ -57,5 +57,14 @@ module.exports = (sequelize, DataTypes) => { modelName: 'PropertyAndLtv', } ) + + PropertyAndLtv.associate = models => { + PropertyAndLtv.hasMany(models.LoanDetail, { + foreignKey: 'losid', + sourceKey : 'losid' + }); + } + + return PropertyAndLtv } diff --git a/app/routes/routes.js b/app/routes/routes.js index 5c97df1..611366c 100644 --- a/app/routes/routes.js +++ b/app/routes/routes.js @@ -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 diff --git a/package-lock.json b/package-lock.json index 3789bd7..8ee396e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index 0aba022..6f16984 100644 --- a/package.json +++ b/package.json @@ -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",