From b674b6e6f0beb69f313ef0e164ba29cb6025b12a Mon Sep 17 00:00:00 2001 From: VivianDee <115420678+VivianDee@users.noreply.github.com> Date: Thu, 5 Jun 2025 12:47:32 +0100 Subject: [PATCH] [update]: Rac check response --- app/api/schemas/rac_check.py | 47 ++++++++++--- app/api/services/rac_check.py | 4 +- app/swagger/schemas/RACCheckResponse.json | 83 +++++++++++++++-------- 3 files changed, 95 insertions(+), 39 deletions(-) diff --git a/app/api/schemas/rac_check.py b/app/api/schemas/rac_check.py index 9f60795..dc0fd7f 100644 --- a/app/api/schemas/rac_check.py +++ b/app/api/schemas/rac_check.py @@ -1,15 +1,44 @@ from marshmallow import Schema, fields +from marshmallow import Schema, fields +from datetime import date + class RACItemSchema(Schema): - hasSalaryAccount = fields.Bool(required=True) - bvnValidated = fields.Bool(required=True) - creditBureauCheck = fields.Bool(required=True) - crmsCheck = fields.Bool(required=True) - accountStatus = fields.Bool(required=True) - hasLien = fields.Bool(required=True) - noBouncedCheck = fields.Bool(required=True) - isWhitelisted = fields.Bool(required=True) - hasPastDueLoan = fields.Bool(required=True) + PROCESS_DATE = fields.Date(required=True, default=date.today) + CIF_ID = fields.Str(required=True) + CUSTOMER_id = fields.Str(required=True) + SALACCT_1 = fields.Str(required=True) + ALERT_PHONE = fields.Str(required=True) + AVERAGE_SALARY = fields.Decimal(required=True, as_string=True) + LOAN_OUSTANDING_BAL = fields.Decimal(required=True, as_string=True) + EMI = fields.Decimal(required=True, as_string=True) + ELIG_AMT = fields.Decimal(required=True, as_string=True) + + rule1_45day_sal = fields.Bool(required=True) + rule2_2m_sal = fields.Bool(required=True) + rule3_no_bounced_check = fields.Bool(required=True) + rule4_current_loan_payments = fields.Bool(required=True) + rule5_no_past_due_fadv_loan = fields.Bool(required=True) + rule6_no_past_due_other_loan = fields.Bool(required=True) + rule7_consistent_salary_amount = fields.Bool(required=True) + rule8_whitelisted = fields.Bool(required=True) + rule9_regular_account = fields.Bool(required=True) + rule10_bvn_validation = fields.Bool(required=True) + rule11_CRC_no_delinquency = fields.Bool(required=True) + rule12_CRMS_no_delinquency = fields.Bool(required=True) + rule13_BVN_ignore = fields.Bool(required=True) + rule14_no_lien = fields.Bool(required=True) + rule15_null_ignore = fields.Bool(required=True) + + OVERALL_ELIG = fields.Bool(required=True) + + SALARYPAYMENT_1 = fields.Decimal(required=True, as_string=True) + SALARYPAYMENT_2 = fields.Decimal(required=True, as_string=True) + SALARYPAYMENT_3 = fields.Decimal(required=True, as_string=True) + SALARYPAYMENT_4 = fields.Decimal(required=True, as_string=True) + SALARYPAYMENT_5 = fields.Decimal(required=True, as_string=True) + SALARYPAYMENT_6 = fields.Decimal(required=True, as_string=True) + # RAC Check Schema class RACCheckSchema(Schema): diff --git a/app/api/services/rac_check.py b/app/api/services/rac_check.py index c8500e2..9990291 100644 --- a/app/api/services/rac_check.py +++ b/app/api/services/rac_check.py @@ -80,8 +80,8 @@ class RACCheckService: "racResponse": rac_response } - response_schema = RACCheckResponseSchema() - result = response_schema.dump(full_response) + # response_schema = RACCheckResponseSchema() + result = full_response return jsonify(result), 200 diff --git a/app/swagger/schemas/RACCheckResponse.json b/app/swagger/schemas/RACCheckResponse.json index 9e7e291..7b19d63 100644 --- a/app/swagger/schemas/RACCheckResponse.json +++ b/app/swagger/schemas/RACCheckResponse.json @@ -16,42 +16,69 @@ "racResponse": { "type": "object", "properties": { - "hasSalaryAccount": { - "type": "boolean", - "example": true + "PROCESS_DATE": { + "type": "string", + "format": "date", + "example": "2025-06-05" }, - "bvnValidated": { - "type": "boolean", - "example": true + "CIF_ID": { + "type": "string", + "example": "123456789" }, - "creditBureauCheck": { - "type": "boolean", - "example": true + "CUSTOMER_id": { + "type": "string", + "example": "987654321" }, - "crmsCheck": { - "type": "boolean", - "example": true + "SALACCT_1": { + "type": "string", + "example": "34567831" }, - "accountStatus": { - "type": "boolean", - "example": true + "ALERT_PHONE": { + "type": "string", + "example": "2348031234567" }, - "hasLien": { - "type": "boolean", - "example": true + "AVERAGE_SALARY": { + "type": "number", + "format": "decimal", + "example": 50000 }, - "noBouncedCheck": { - "type": "boolean", - "example": true + "LOAN_OUSTANDING_BAL": { + "type": "number", + "format": "decimal", + "example": 0 }, - "isWhitelisted": { - "type": "boolean", - "example": true + "EMI": { + "type": "number", + "format": "decimal", + "example": 10000 }, - "hasPastDueLoan": { - "type": "boolean", - "example": true - } + "ELIG_AMT": { + "type": "number", + "format": "decimal", + "example": 25000 + }, + "rule1-45day-sal": { "type": "boolean", "example": true }, + "rule2-2m-sal": { "type": "boolean", "example": true }, + "rule3-no-bounced-check": { "type": "boolean", "example": true }, + "rule4-current-loan-payments": { "type": "boolean", "example": true }, + "rule5-no-past-due-fadv-loan": { "type": "boolean", "example": true }, + "rule6--no-past-due-other-loan": { "type": "boolean", "example": true }, + "rule7-consistent-salary-amount": { "type": "boolean", "example": true }, + "rule8-whitelisted": { "type": "boolean", "example": true }, + "rule9-regular-account": { "type": "boolean", "example": true }, + "rule10-bvn-validation": { "type": "boolean", "example": true }, + "rule11-CRC-no-delinquency": { "type": "boolean", "example": true }, + "rule12-CRMS-no-delinquency": { "type": "boolean", "example": true }, + "rule13-BVN-ignore": { "type": "boolean", "example": true }, + "rule14-no-lien": { "type": "boolean", "example": true }, + "rule15-null-ignore": { "type": "boolean", "example": true }, + "OVERALL_ELIG": { "type": "boolean", "example": true }, + "SALARYPAYMENT_1": { "type": "number", "format": "decimal", "example": 50000 }, + "SALARYPAYMENT_2": { "type": "number", "format": "decimal", "example": 50000 }, + "SALARYPAYMENT_3": { "type": "number", "format": "decimal", "example": 50000 }, + "SALARYPAYMENT_4": { "type": "number", "format": "decimal", "example": 50000 }, + "SALARYPAYMENT_5": { "type": "number", "format": "decimal", "example": 50000 }, + "SALARYPAYMENT_6": { "type": "number", "format": "decimal", "example": 50000 } } } }, -- 2.34.1