diff --git a/.gitignore b/.gitignore index ea42e26..90cc466 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -./vscode +.vscode/ __pycache__/ .env \ No newline at end of file diff --git a/app/__init__.py b/app/__init__.py index a98c30b..4541b93 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,7 +1,7 @@ from flask import Flask from flask_cors import CORS from app.config import Config -from app.routes import auth_bp, eligibility_bp +from app.routes import auth_bp, eligibility_bp, loan_bp from app.errors import method_not_allowed, unsupported_media_type @@ -16,7 +16,7 @@ def create_app(): # Register blueprints app.register_blueprint(auth_bp) - # app.register_blueprint(loan_bp) + app.register_blueprint(loan_bp, url_prefix="/loans") app.register_blueprint(eligibility_bp, url_prefix="/eligibility") # app.register_blueprint(repayment_bp) diff --git a/app/__pycache__/__init__.cpython-310.pyc b/app/__pycache__/__init__.cpython-310.pyc index 30e884e..61b13ba 100644 Binary files a/app/__pycache__/__init__.cpython-310.pyc and b/app/__pycache__/__init__.cpython-310.pyc differ diff --git a/app/routes/__init__.py b/app/routes/__init__.py index d7d4421..103f46e 100644 --- a/app/routes/__init__.py +++ b/app/routes/__init__.py @@ -1,4 +1,5 @@ from .authentication import auth_bp from .eligibility import eligibility_bp -# from .loan import loan_bp -# from .repayment import repayment_bp \ No newline at end of file +from .loan import loan_bp + +# from .repayment import repayment_bp diff --git a/app/routes/__pycache__/__init__.cpython-310.pyc b/app/routes/__pycache__/__init__.cpython-310.pyc index be0688c..95cf942 100644 Binary files a/app/routes/__pycache__/__init__.cpython-310.pyc and b/app/routes/__pycache__/__init__.cpython-310.pyc differ diff --git a/app/routes/__pycache__/eligibility.cpython-310.pyc b/app/routes/__pycache__/eligibility.cpython-310.pyc index e8711c0..5267435 100644 Binary files a/app/routes/__pycache__/eligibility.cpython-310.pyc and b/app/routes/__pycache__/eligibility.cpython-310.pyc differ diff --git a/app/routes/eligibility.py b/app/routes/eligibility.py index d8c7cea..45b4f95 100644 --- a/app/routes/eligibility.py +++ b/app/routes/eligibility.py @@ -10,8 +10,6 @@ def eligibility_check(): data = request.json api_url = f"{current_app.config['API_BASE_URL']}/EligibilityCheck" - print(api_url) - # response = requests.post(api_url, json=data, headers=get_headers()) # return jsonify(response.json()), response.status_code response = { diff --git a/app/routes/loan.py b/app/routes/loan.py index e69de29..f6cf44e 100644 --- a/app/routes/loan.py +++ b/app/routes/loan.py @@ -0,0 +1,43 @@ +from flask import Blueprint, request, jsonify, current_app +import requests +from app.utils.auth import get_headers + +loan_bp = Blueprint("loan", __name__) + + +@loan_bp.route("/select-offer", methods=["POST"]) +def select_offer(): + data = request.json + api_url = f"{current_app.config['API_BASE_URL']}/SelectOffer" + + # response = requests.post(api_url, json=data, headers=get_headers()) + # return jsonify(response.json()), response.status_code + response = { + "transactionId": "1231231321232", + "customerId": "1256907", + "accountId": "5948306019", + "outstandingDebtAmount": 0, + "loan": [ + { + "offerId": "14451", + "productId": "2030", + "amount": 10000, + "upfrontPayment": 1000, + "interestRate": 3, + "Interest": 300, + "ManagementRate": 1, + "ManagementFee": 100, + "InsuranceRate": 1, + "InsuranceFee": 100, + "VATRate": 7.5, + "VATamount": 100, + "recommendedRepaymentDates": ["2022-11-30"], + "installmentAmount": 11000, + "totalRepaymentAmount": 11000, + } + ], + "resultCode": "00", + "resultDescription": "Successful", + } + + return jsonify(response), 200 diff --git a/openapi.yml b/openapi.yml index 25f7fbf..f946ca3 100644 --- a/openapi.yml +++ b/openapi.yml @@ -58,3 +58,40 @@ paths: responses: 200: description: A successful response + /loans/select-offer: + post: + summary: Selects an offer for a loan + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + requestId: + type: string + example: "202111170001371256908" + transactionId: + type: string + example: "1231231321232" + customerId: + type: string + example: "1256907" + accountId: + type: string + example: "5948306019" + msisdn: + type: string + example: "123456789" + requestedAmount: + type: integer + example: 10000 + productId: + type: string + example: "101" + channel: + type: string + example: "USSD" + responses: + 200: + description: A successful response