diff --git a/app/controllers/cibil.controller.js b/app/controllers/cibil.controller.js new file mode 100644 index 0000000..63dfb81 --- /dev/null +++ b/app/controllers/cibil.controller.js @@ -0,0 +1,103 @@ +const { sequelize,OutputActiveAndClosedLoans,OutSanctionAmt_P,OutSanctionAmt_C,OutEnquiryAmountP,OutEnquiryAmountC} = require('../models') +const { logMsg } = require('../services/logger.js'); + +exports.ActiveAndClosedLoansDetailsList =async (req, res) => +{ + try + { + LoanData = await OutputActiveAndClosedLoans.findAll({where:{losid:req.query.losid}}); + res.send({'status':200 , message:"Success." ,'data': LoanData}); + + } catch(err) { + res.status(500).send({'status':404, + message: err.message || "Some error occurred while inserting statements." ,'data': "No data" + }); } //end of try catch + +}; +exports.SanctionAmtAndReplaceOfDeptDetailsList =async (req, res) => +{ + try + { + SanctionAmtData = await OutSanctionAmt_P.findOne({where:{losid:req.query.losid} , include: [ {model: OutSanctionAmt_C , attributes: ["months_range"], group: "months_range" }]}); + if(SanctionAmtData && SanctionAmtData.OutSanctionAmt_Cs.length != 0) + { + var select_items = ""; + var sub_query = ""; + const words = ['','one','two','three','four', 'five','six','seven','eight','nine','ten']; + monthRangeArray = []; + SanctionAmtData.OutSanctionAmt_Cs.forEach((value,index) => { + monthRange = value.dataValues.months_range; + monthRange_aliseName = monthRange.replace(/[->]/g , '_'); + monthRangeArray.push(monthRange_aliseName); + key_addition = index + 1; + alisename = words[key_addition]; + select_items += ","+alisename+".amt as amt_"+monthRange_aliseName+","+alisename+".count as count_"+monthRange_aliseName+","+alisename+".opening_amt as opening_amt_"+monthRange_aliseName+","+alisename+".opening_count as opening_count_"+monthRange_aliseName+","+alisename+".closing_amt as closing_amt_"+monthRange_aliseName+","+alisename+".closing_count as closing_count_"+monthRange_aliseName+" "; + sub_query += " JOIN ( SELECT id,sanction_amt_id,months_range,amt,count,opening_amt,opening_count,closing_amt,closing_count FROM out_sanction_amt_and_replacement_of_debt_c where months_range= '"+monthRange+"') "+alisename+" ON a.id = "+alisename+".sanction_amt_id"; + + }); + + var query = "Select a.id,a.facility_type,a.total "+select_items+" FROM out_sanction_amt_and_replacement_of_debt_p a "+sub_query+" WHERE a.losid = '"+req.query.losid+"' "; + + sequelize.query(query).then(async(data) => { + SanctionData = {monthRange : monthRangeArray ,SanctionAmountData : data}; + res.send({'status':200 , message:"Success." ,'data':SanctionData}); + }).catch(err=>{ res.send({'status':400 , message: "Failed" ,'data': "Nodata"}); }) + } + else + { + res.send({'status':400 , message:"Failed." ,'data': "Nodata"}); + } + + + } catch(err) { + res.status(500).send({'status':404, + message: err.message || "Some error occurred while inserting statements." ,'data': "No data" + }); } //end of try catch + +}; + + + +exports.EnquirySummaryDetailsList =async (req, res) => +{ + try + { + EnquiryAmtData = await OutEnquiryAmountP.findOne({where:{losid:req.query.losid} , include: [ {model: OutEnquiryAmountC , attributes: ["months_range"], group: "months_range" }]}); + + if(EnquiryAmtData && EnquiryAmtData.OutEnquiryAmountCs.length != 0) + { + var select_items = ""; + var sub_query = ""; + const words = ['','one','two','three','four', 'five','six','seven','eight','nine','ten']; + monthRangeArray = []; + EnquiryAmtData.OutEnquiryAmountCs.forEach((value,index) => { + monthRange = value.dataValues.months_range; + monthRange_aliseName = monthRange.replace(/[->]/g , '_'); + monthRangeArray.push(monthRange_aliseName); + key_addition = index + 1; + alisename = words[key_addition]; + select_items += ","+alisename+".amt as amt_"+monthRange_aliseName+","+alisename+".count as count_"+monthRange_aliseName+" "; + sub_query += " JOIN ( SELECT id,enquiry_amount_id,months_range,amt,count FROM out_enquiry_amount_c where months_range= '"+monthRange+"') "+alisename+" ON a.id = "+alisename+".enquiry_amount_id"; + + }); + + var query = "Select a.id,a.facility_type,a.total "+select_items+" FROM out_enquity_amount_p a "+sub_query+" WHERE a.losid = '"+req.query.losid+"' "; + + sequelize.query(query).then(async(data) => { + EnquiryData = {monthRange : monthRangeArray ,EnquiryAmountData : data}; + res.send({'status':200 , message:"Success." ,'data':EnquiryData}); + }).catch(err=>{ res.send({'status':400 , message: "Failed" ,'data': "Nodata"}); }) + } + else + { + res.send({'status':400 , message:"Failed." ,'data': "Nodata"}); + } + + + } catch(err) { + res.status(500).send({'status':404, + message: err.message || "Some error occurred while inserting statements." ,'data': "No data" + }); } //end of try catch + +}; + diff --git a/app/models/OutSanctionAmt_P.js b/app/models/OutSanctionAmt_P.js index 055de6c..f036346 100644 --- a/app/models/OutSanctionAmt_P.js +++ b/app/models/OutSanctionAmt_P.js @@ -23,7 +23,14 @@ module.exports = (sequelize, DataTypes) => { modelName: 'OutSanctionAmt_P', } ) - + + OutSanctionAmt_P.associate = models => { + OutSanctionAmt_P.hasMany(models.OutSanctionAmt_C, { + foreignKey: 'sanction_amt_id', + sourceKey : 'id' + }) + + } return OutSanctionAmt_P } \ No newline at end of file diff --git a/app/models/OutputEnquiryAmountP.js b/app/models/OutputEnquiryAmountP.js index f864f25..a631d71 100644 --- a/app/models/OutputEnquiryAmountP.js +++ b/app/models/OutputEnquiryAmountP.js @@ -24,7 +24,13 @@ module.exports = (sequelize, DataTypes) => { modelName: 'OutEnquiryAmountP', } ) - + OutEnquiryAmountP.associate = models => { + OutEnquiryAmountP.hasMany(models.OutEnquiryAmountC, { + foreignKey: 'enquiry_amount_id', + sourceKey : 'id' + }) + + } return OutEnquiryAmountP } \ No newline at end of file diff --git a/app/routes/routes.js b/app/routes/routes.js index 560f955..70ecbc5 100644 --- a/app/routes/routes.js +++ b/app/routes/routes.js @@ -1,7 +1,7 @@ module.exports = app => { const request = require("request"); const cors=require('cors'); - const Mycontroller = require("../controllers/test.controller.js"); + const Cibilcontroller = require("../controllers/cibil.controller.js"); const { logMsg } = require('../services/logger.js'); var router = require("express").Router(); @@ -11,15 +11,62 @@ module.exports = app => { /** * @swagger -* /api/demo: +* /api/activeAndClosedLoansDetailsList: * get: -* summary: Demo Api -* description: Welcome Message +* summary: loan Details List +* description: Get active & closed loans Data +* parameters: +* - in: query +* name: losid +* schema: +* type: string +* required: true +* example: MW112233 * responses: * 200: * description: success */ - router.get("/demo", Mycontroller.Welcome); + router.get("/activeAndClosedLoansDetailsList", Cibilcontroller.ActiveAndClosedLoansDetailsList); + + + /** +* @swagger +* /api/sanctionAmtAndReplaceOfDeptDetailsList: +* get: +* summary: sanction Amt And Replace Of Dept Details List +* description: +* parameters: +* - in: query +* name: losid +* schema: +* type: string +* required: true +* example: MW112233 +* responses: +* 200: +* description: success +*/ +router.get("/sanctionAmtAndReplaceOfDeptDetailsList", Cibilcontroller.SanctionAmtAndReplaceOfDeptDetailsList); + + + /** +* @swagger +* /api/enquirySummaryDetailsList: +* get: +* summary: enquiry Summary Details List +* description: +* parameters: +* - in: query +* name: losid +* schema: +* type: string +* required: true +* example: MW112233 +* responses: +* 200: +* description: success +*/ +router.get("/enquirySummaryDetailsList", Cibilcontroller.EnquirySummaryDetailsList); diff --git a/package.json b/package.json index 899dde0..5f28c65 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "smc_cet_creditpd_backend", + "name": "smc_cet_cibil_staging", "version": "1.0.0", "description": "", "main": "server.js", diff --git a/server.js b/server.js index 3b2c42d..2c1769f 100644 --- a/server.js +++ b/server.js @@ -19,7 +19,7 @@ const options = { definition: { openapi: '3.0.0', info: { - title: 'Smc_cet_cibil_staging', + title: 'Smc_cet_cibil_backend', version: '1.0.0', }, }, @@ -56,7 +56,7 @@ require("./app/routes/routes.js")(app); const PORT_NUMBER = process.env.SERVER_PORT app.listen({ port: PORT_NUMBER }, async () => { - console.log('Server up on http://localhost:8080') + console.log('Server up on http://localhost:'+PORT_NUMBER) //await sequelize.authenticate() }) \ No newline at end of file