Merge branch 'rac_check_update' of DigiFi/digifi-BankEmulator into master
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -3,6 +3,8 @@ from marshmallow import ValidationError
|
||||
from app.utils.logger import logger
|
||||
from app.api.helpers.response_helper import ResponseHelper
|
||||
from app.api.schemas.rac_check import RACCheckSchema, RACCheckResponseSchema
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
class RACCheckService:
|
||||
@staticmethod
|
||||
@@ -24,18 +26,53 @@ class RACCheckService:
|
||||
validated_data = schema.load(data)
|
||||
|
||||
# Simulated RAC check logic — create racResponse manually or via logic
|
||||
# rac_response = {
|
||||
# "hasSalaryAccount": True,
|
||||
# "bvnValidated": True,
|
||||
# "creditBureauCheck": False,
|
||||
# "crmsCheck": True,
|
||||
# "accountStatus": True,
|
||||
# "hasLien": False,
|
||||
# "noBouncedCheck": True,
|
||||
# "isWhitelisted": True,
|
||||
# "hasPastDueLoan": False
|
||||
# }
|
||||
|
||||
rac_response = {
|
||||
"hasSalaryAccount": True,
|
||||
"bvnValidated": True,
|
||||
"creditBureauCheck": False,
|
||||
"crmsCheck": True,
|
||||
"accountStatus": True,
|
||||
"hasLien": False,
|
||||
"noBouncedCheck": True,
|
||||
"isWhitelisted": True,
|
||||
"hasPastDueLoan": False
|
||||
"PROCESS_DATE": datetime.strptime("2025-06-05", "%Y-%m-%d").date(),
|
||||
"CIF_ID": "123456789",
|
||||
"CUSTOMER_id": "987654321",
|
||||
"SALACCT_1": "34567831",
|
||||
"ALERT_PHONE": "2348031234567",
|
||||
"AVERAGE_SALARY": Decimal("50000"),
|
||||
"LOAN_OUSTANDING_BAL": Decimal("0"),
|
||||
"EMI": Decimal("10000"),
|
||||
"ELIG_AMT": Decimal("25000"),
|
||||
"rule1-45day-sal": True,
|
||||
"rule2-2m-sal": True,
|
||||
"rule3-no-bounced-check": True,
|
||||
"rule4-current-loan-payments": True,
|
||||
"rule5-no-past-due-fadv-loan": True,
|
||||
"rule6--no-past-due-other-loan": True,
|
||||
"rule7-consistent-salary-amount": True,
|
||||
"rule8-whitelisted": True,
|
||||
"rule9-regular-account": True,
|
||||
"rule10-bvn-validation": True,
|
||||
"rule11-CRC-no-delinquency": True,
|
||||
"rule12-CRMS-no-delinquency": True,
|
||||
"rule13-BVN-ignore": True,
|
||||
"rule14-no-lien": True,
|
||||
"rule15-null-ignore": True,
|
||||
"OVERALL_ELIG": True,
|
||||
"SALARYPAYMENT_1": Decimal("50000"),
|
||||
"SALARYPAYMENT_2": Decimal("50000"),
|
||||
"SALARYPAYMENT_3": Decimal("50000"),
|
||||
"SALARYPAYMENT_4": Decimal("50000"),
|
||||
"SALARYPAYMENT_5": Decimal("50000"),
|
||||
"SALARYPAYMENT_6": Decimal("50000")
|
||||
}
|
||||
|
||||
|
||||
full_response = {
|
||||
"transactionId": validated_data["transactionId"],
|
||||
"customerId": validated_data["customerId"],
|
||||
@@ -43,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
|
||||
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user