[fix]: Response messages

This commit is contained in:
VivianDee
2025-03-21 17:05:12 +01:00
parent 293d73518f
commit 320a4590af
27 changed files with 125 additions and 312 deletions
+2
View File
@@ -1,2 +1,4 @@
__pycache__/
.env
app.log
.DS_Store
-138
View File
@@ -1,138 +0,0 @@
2025-03-21 08:07:50,689 - INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.21.0.2:5000
2025-03-21 08:07:50,689 - INFO - Press CTRL+C to quit
2025-03-21 08:25:00,902 - INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.21.0.2:5000
2025-03-21 08:25:00,903 - INFO - Press CTRL+C to quit
2025-03-21 08:27:59,768 - INFO - before_request middleware triggered
2025-03-21 08:27:59,772 - ERROR - Unauthorized access: Missing API key.
2025-03-21 08:27:59,774 - INFO - 172.21.0.1 - - [21/Mar/2025 08:27:59] "GET /health HTTP/1.1" 200 -
2025-03-21 08:27:59,921 - INFO - 172.21.0.1 - - [21/Mar/2025 08:27:59] "GET /favicon.ico HTTP/1.1" 404 -
2025-03-21 08:28:47,107 - INFO - before_request middleware triggered
2025-03-21 08:28:47,108 - ERROR - Unauthorized access: Missing API key.
2025-03-21 08:28:47,111 - INFO - 172.21.0.1 - - [21/Mar/2025 08:28:47] "POST /Disbursement HTTP/1.1" 200 -
2025-03-21 08:30:01,346 - INFO - before_request middleware triggered
2025-03-21 08:30:01,350 - INFO - Processing Disbursement request
2025-03-21 08:30:01,352 - ERROR - Validation Error: {'countryId': ['Missing data for required field.'], 'collectAmountMgtFee': ['Missing data for required field.'], 'requestId': ['Missing data for required field.'], 'debtId': ['Missing data for required field.'], 'provideAmount': ['Missing data for required field.'], 'collectAmountVAT': ['Missing data for required field.'], 'collectAmountInsurance': ['Missing data for required field.'], 'productId': ['Missing data for required field.'], 'msisdn': ['Unknown field.'], 'channel': ['Unknown field.'], 'lienAmount': ['Unknown field.'], '$type': ['Unknown field.'], 'countryCode': ['Unknown field.']}
2025-03-21 08:30:01,353 - INFO - 172.21.0.1 - - [21/Mar/2025 08:30:01] "POST /Disbursement HTTP/1.1" 200 -
2025-03-21 08:34:16,957 - INFO - before_request middleware triggered
2025-03-21 08:34:16,960 - INFO - Processing Disbursement request
2025-03-21 08:34:16,970 - ERROR - Validation Error: {'countryId': ['Missing data for required field.'], 'collectAmountMgtFee': ['Missing data for required field.'], 'requestId': ['Missing data for required field.'], 'debtId': ['Missing data for required field.'], 'provideAmount': ['Missing data for required field.'], 'collectAmountVAT': ['Missing data for required field.'], 'collectAmountInsurance': ['Missing data for required field.'], 'productId': ['Missing data for required field.'], 'msisdn': ['Unknown field.'], 'channel': ['Unknown field.'], 'lienAmount': ['Unknown field.'], '$type': ['Unknown field.'], 'countryCode': ['Unknown field.']}
2025-03-21 08:34:16,973 - INFO - 172.21.0.1 - - [21/Mar/2025 08:34:16] "POST /Disbursement HTTP/1.1" 200 -
2025-03-21 08:38:52,829 - INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.21.0.2:5000
2025-03-21 08:38:52,829 - INFO - Press CTRL+C to quit
2025-03-21 08:44:44,426 - INFO - before_request middleware triggered
2025-03-21 08:44:44,430 - ERROR - Exception on /Disbursement [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.9/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
File "/app/app/routes/routes.py", line 24, in require_api_key_middleware
return require_api_key()
TypeError: require_api_key() missing 1 required positional argument: 'f'
2025-03-21 08:44:44,446 - INFO - 172.21.0.1 - - [21/Mar/2025 08:44:44] "POST /Disbursement HTTP/1.1" 500 -
2025-03-21 09:02:19,681 - INFO - before_request middleware triggered
2025-03-21 09:02:19,683 - ERROR - Exception on /Disbursement [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.9/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
File "/app/app/routes/routes.py", line 24, in require_api_key_middleware
return require_api_key()
TypeError: require_api_key() missing 1 required positional argument: 'f'
2025-03-21 09:02:19,685 - INFO - 172.21.0.1 - - [21/Mar/2025 09:02:19] "POST /Disbursement HTTP/1.1" 500 -
2025-03-21 09:02:24,680 - INFO - before_request middleware triggered
2025-03-21 09:02:24,681 - ERROR - Exception on /Disbursement [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.9/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
File "/app/app/routes/routes.py", line 24, in require_api_key_middleware
return require_api_key()
TypeError: require_api_key() missing 1 required positional argument: 'f'
2025-03-21 09:02:24,683 - INFO - 172.21.0.1 - - [21/Mar/2025 09:02:24] "POST /Disbursement HTTP/1.1" 500 -
2025-03-21 09:03:00,120 - INFO - before_request middleware triggered
2025-03-21 09:03:00,121 - ERROR - Exception on /Disbursement [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.9/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
File "/app/app/routes/routes.py", line 24, in require_api_key_middleware
return require_api_key()
TypeError: require_api_key() missing 1 required positional argument: 'f'
2025-03-21 09:03:00,122 - INFO - 172.21.0.1 - - [21/Mar/2025 09:03:00] "POST /Disbursement HTTP/1.1" 500 -
2025-03-21 09:03:03,022 - INFO - before_request middleware triggered
2025-03-21 09:03:03,023 - ERROR - Exception on /Disbursement [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.9/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
File "/app/app/routes/routes.py", line 24, in require_api_key_middleware
return require_api_key()
TypeError: require_api_key() missing 1 required positional argument: 'f'
2025-03-21 09:03:03,024 - INFO - 172.21.0.1 - - [21/Mar/2025 09:03:03] "POST /Disbursement HTTP/1.1" 500 -
2025-03-21 09:03:36,056 - INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.21.0.2:5000
2025-03-21 09:03:36,056 - INFO - Press CTRL+C to quit
2025-03-21 09:03:43,372 - INFO - before_request middleware triggered
2025-03-21 09:03:43,373 - INFO - Processing Disbursement request
2025-03-21 09:03:43,374 - ERROR - Validation Error: {'collectAmountMgtFee': ['Missing data for required field.'], 'collectAmountVAT': ['Missing data for required field.'], 'collectAmountInsurance': ['Missing data for required field.'], 'productId': ['Missing data for required field.'], 'countryId': ['Missing data for required field.'], 'provideAmount': ['Missing data for required field.'], 'debtId': ['Missing data for required field.'], 'requestId': ['Missing data for required field.'], 'countryCode': ['Unknown field.'], 'lienAmount': ['Unknown field.'], 'msisdn': ['Unknown field.'], '$type': ['Unknown field.'], 'channel': ['Unknown field.']}
2025-03-21 09:03:43,375 - INFO - 172.21.0.1 - - [21/Mar/2025 09:03:43] "POST /Disbursement HTTP/1.1" 200 -
2025-03-21 09:16:24,496 - INFO - before_request middleware triggered
2025-03-21 09:16:24,496 - INFO - Processing Disbursement request
2025-03-21 09:16:24,498 - ERROR - Validation Error: {'productId': ['Missing data for required field.'], 'debtId': ['Missing data for required field.'], 'collectAmountMgtFee': ['Missing data for required field.'], 'collectAmountVAT': ['Missing data for required field.'], 'provideAmount': ['Missing data for required field.'], 'requestId': ['Missing data for required field.'], 'collectAmountInsurance': ['Missing data for required field.'], 'countryId': ['Missing data for required field.'], 'channel': ['Unknown field.'], '$type': ['Unknown field.'], 'msisdn': ['Unknown field.'], 'countryCode': ['Unknown field.'], 'lienAmount': ['Unknown field.']}
2025-03-21 09:40:40,601 - ERROR - Unauthorized access: Invalid API key.
2025-03-21 09:41:09,390 - INFO - Processing Disbursement request
2025-03-21 09:41:09,396 - ERROR - Validation Error: {'requestId': ['Missing data for required field.'], 'productId': ['Missing data for required field.'], 'collectAmountMgtFee': ['Missing data for required field.'], 'collectAmountVAT': ['Missing data for required field.'], 'provideAmount': ['Missing data for required field.'], 'countryId': ['Missing data for required field.'], 'debtId': ['Missing data for required field.'], 'collectAmountInsurance': ['Missing data for required field.'], 'channel': ['Unknown field.'], 'lienAmount': ['Unknown field.'], '$type': ['Unknown field.'], 'msisdn': ['Unknown field.'], 'countryCode': ['Unknown field.']}
2025-03-21 09:41:13,582 - ERROR - Unauthorized access: Missing App-ID.
2025-03-21 09:41:16,993 - INFO - Processing Disbursement request
2025-03-21 09:41:16,995 - ERROR - Validation Error: {'requestId': ['Missing data for required field.'], 'productId': ['Missing data for required field.'], 'collectAmountMgtFee': ['Missing data for required field.'], 'collectAmountVAT': ['Missing data for required field.'], 'provideAmount': ['Missing data for required field.'], 'countryId': ['Missing data for required field.'], 'debtId': ['Missing data for required field.'], 'collectAmountInsurance': ['Missing data for required field.'], 'channel': ['Unknown field.'], 'lienAmount': ['Unknown field.'], '$type': ['Unknown field.'], 'msisdn': ['Unknown field.'], 'countryCode': ['Unknown field.']}
2025-03-21 09:48:19,845 - ERROR - Unauthorized access: Missing API key.
2025-03-21 10:32:19,196 - ERROR - Unauthorized access: Missing API key.
2025-03-21 10:46:47,209 - ERROR - Unauthorized access: Missing API key.
2025-03-21 11:05:50,287 - INFO - Processing Disbursement request
2025-03-21 11:05:50,290 - ERROR - Validation Error: {'debtId': ['Missing data for required field.'], 'requestId': ['Missing data for required field.'], 'productId': ['Missing data for required field.'], 'provideAmount': ['Missing data for required field.'], 'collectAmountInsurance': ['Missing data for required field.'], 'collectAmountVAT': ['Missing data for required field.'], 'countryId': ['Missing data for required field.'], 'collectAmountMgtFee': ['Missing data for required field.'], 'msisdn': ['Unknown field.'], 'channel': ['Unknown field.'], 'lienAmount': ['Unknown field.'], 'countryCode': ['Unknown field.'], '$type': ['Unknown field.']}
-9
View File
@@ -1,9 +0,0 @@
from app.blueprints.rac_check import RACCheckService
from app.blueprints.disbursement import DisbursementService
from app.blueprints.collect_loan import CollectLoanService
from app.blueprints.transaction_verify import TransactionVerifyService
from app.blueprints.penal_charge import PenalChargeService
from app.blueprints.revoke_enable_consent import RevokeEnableConsentService
from app.blueprints.token_validation import TokenValidationService
from app.blueprints.lien_check import LienCheckService
from app.blueprints.new_transaction_check import NewTransactionCheckService
+4 -4
View File
@@ -2,13 +2,13 @@ from flask import jsonify
from app.helpers.response_helper import ResponseHelper
def method_not_allowed(error):
return ResponseHelper.method_not_allowed(message="Method Not Allowed")
return jsonify({"message": "Method Not Allowed"}), 405
def not_found(error):
return ResponseHelper.not_found(message="URL Not Found")
return jsonify({"message": "Resource not found"}), 404
def bad_request(error):
return ResponseHelper.bad_request(message="Bad Request")
return jsonify({"message": "Bad Request"}), 400
def unsupported_media_type(error):
return ResponseHelper.error(message="Unsupported Media Type", status_code=415)
return jsonify({"message": "Unsupported Media Type"}), 415
-1
View File
@@ -1,4 +1,3 @@
from .verify_api_key import require_api_key
from .app_id_checker import require_app_id
from .request_validator import validate_json
from .cors import enforce_json
+4 -4
View File
@@ -1,6 +1,5 @@
from functools import wraps
from flask import request
from app.helpers.response_helper import ResponseHelper
from flask import request, jsonify
from app.utils.logger import logger
import os
@@ -15,11 +14,12 @@ def require_app_id(f):
if not app_id:
logger.error("Unauthorized access: Missing App-ID.")
return ResponseHelper.unauthorized("Missing App-ID")
return jsonify({"message": "Invalid request parameters"}), 400
if app_id not in VALID_APP_ID:
logger.error(f"Unauthorized access: Invalid App-ID {app_id}.")
return ResponseHelper.unauthorized("Invalid App-ID")
return jsonify({"message": "Invalid request parameters"}), 400
return f(*args, **kwargs)
+2 -3
View File
@@ -1,8 +1,7 @@
from flask import request
from app.helpers.response_helper import ResponseHelper
from flask import request, jsonify
def enforce_json():
"""Middleware to enforce JSON Content-Type for incoming requests"""
if request.method in ["POST", "PUT", "PATCH"] and request.content_type != "application/json":
return ResponseHelper.error( message="Content-Type must be application/json")
return jsonify({"message": "Invalid request parameters"}), 400
-14
View File
@@ -1,14 +0,0 @@
# app/middlewares/encryption.py
# from cryptography.fernet import Fernet
# import os
# ENCRYPTION_KEY = os.getenv("ENCRYPTION_KEY", Fernet.generate_key())
# cipher = Fernet(ENCRYPTION_KEY)
# def encryptdata(data):
# """Encrypt sensitive data"""
# return cipher.encrypt(data.encode()).decode()
# def decrypt_data(data):
# """Decrypt sensitive data"""
# return cipher.decrypt(data.encode()).decode()
-16
View File
@@ -1,16 +0,0 @@
from functools import wraps
from flask import request
from app.helpers.response_helper import ResponseHelper
from app.utils.logger import logger
def validate_json(f):
"""Decorator to ensure the request has a valid JSON body."""
@wraps(f)
def decorated_function(*args, **kwargs):
if not request.is_json:
logger.error("Invalid request: Request must be JSON.")
return ResponseHelper.error(message="Request must be JSON", status_code=415)
return f(*args, **kwargs)
return decorated_function
+3 -4
View File
@@ -1,6 +1,5 @@
from functools import wraps
from flask import request
from app.helpers.response_helper import ResponseHelper
from flask import request, jsonify
from app.utils.logger import logger
import os
@@ -15,11 +14,11 @@ def require_api_key(f):
if not api_key:
logger.error("Unauthorized access: Missing API key.")
return ResponseHelper.unauthorized("Missing API key")
return jsonify({"message": "Invalid request parameters"}), 400
if api_key != VALID_API_KEY:
logger.error("Unauthorized access: Invalid API key.")
return ResponseHelper.unauthorized("Invalid API key")
return jsonify({"message": "Invalid request parameters"}), 400
return f(*args, **kwargs)
+1 -1
View File
@@ -1,5 +1,5 @@
from flask import Blueprint, request, jsonify
from app.blueprints import (
from app.services import (
RACCheckService,
DisbursementService,
CollectLoanService,
+13 -13
View File
@@ -2,16 +2,16 @@ from marshmallow import Schema, fields
# Disbursement Schema
class DisbursementSchema(Schema):
requestId = fields.Str(required=True, data_key="requestId")
debtId = fields.Str(required=True, data_key="debtId")
transactionId = fields.Str(required=True, data_key="transactionId")
customerId = fields.Str(required=True, data_key="customerId")
accountId = fields.Str(required=True, data_key="accountId")
productId = fields.Str(required=True, data_key="productId")
provideAmount = fields.Float(required=True, data_key="provideAmount")
collectAmountInterest = fields.Float(required=False, data_key="collectAmountInterest") # Optional
collectAmountMgtFee = fields.Float(required=True, data_key="collectAmountMgtFee")
collectAmountInsurance = fields.Float(required=True, data_key="collectAmountInsurance")
collectAmountVAT = fields.Float(required=True, data_key="collectAmountVAT")
countryId = fields.Str(required=True, data_key="countryId")
comment = fields.Str(required=False, data_key="comment") # Optional
requestId = fields.Str(required=True)
debtId = fields.Str(required=True)
transactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
productId = fields.Str(required=True)
provideAmount = fields.Float(required=True)
collectAmountInterest = fields.Float(required=False) # Optional
collectAmountMgtFee = fields.Float(required=True)
collectAmountInsurance = fields.Float(required=True)
collectAmountVAT = fields.Float(required=True)
countryId = fields.Str(required=True)
comment = fields.Str(required=False) # Optional
+4 -4
View File
@@ -2,7 +2,7 @@ from marshmallow import Schema, fields
# Lien Check Schema
class LienCheckSchema(Schema):
transactionId = fields.Str(required=True, metadata={"description": "Unique Identifier in Simbrella system"})
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of customer"})
accountId = fields.Str(required=True, metadata={"description": "Unique identifier of account"})
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
transactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
countryId = fields.Str(required=True)
+9 -9
View File
@@ -3,12 +3,12 @@ from marshmallow import Schema, fields
# Penal Charge Schema
class PenalChargeSchema(Schema):
transactionId = fields.Str(required=True, metadata={"description": "Unique identifier of transaction in Simbrella system"})
fbnTransactionId = fields.Str(required=True, metadata={"description": "Unique id of the transaction received from FBN in Eligibility or Provision requests"})
debtId = fields.Str(required=True, metadata={"description": "Unique identifier of providing loan in Simbrella system"})
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of a user"})
accountId = fields.Str(required=True, metadata={"description": "Specific identifier of a users account"})
penalCharge = fields.Decimal(required=True, metadata={"description": "Penalty amount that needs to be collected from users account"})
lienAmount = fields.Decimal(required=True, metadata={"description": "Aggregated (summed up) lien amount"})
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
comment = fields.Str(required=False, metadata={"description": "Any additional comment for provided loan operation"})
transactionId = fields.Str(required=True)
fbnTransactionId = fields.Str(required=True)
debtId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
penalCharge = fields.Decimal(required=True)
lienAmount = fields.Decimal(required=True)
countryId = fields.Str(required=True)
comment = fields.Str(required=False)
+8 -8
View File
@@ -3,11 +3,11 @@ from marshmallow import Schema, fields
# Revoke Enable Consent Schema
class RevokeEnableConsentSchema(Schema):
transactionId = fields.Str(required=True, metadata={"description": "Unique identifier of transaction in Simbrella system"})
fbnTransactionId = fields.Str(required=True, metadata={"description": "Unique id of the transaction received from FBN in CustomerConsentRequest"})
customerId = fields.Str(required=True, metadata={"description": "Unique identifier of a user"})
accountId = fields.Str(required=True, metadata={"description": "Specific identifier of a users account"})
processTime = fields.DateTime(required=True, metadata={"description": "Date and time when consent request was processed"})
consentType = fields.Str(required=True, metadata={"description": '“Enable” or “Revoke”'})
countryId = fields.Str(required=True, metadata={"description": 'Set to static value "01"'})
comment = fields.Str(required=False, metadata={"description": "Any additional comment for consent operation"})
transactionId = fields.Str(required=True)
fbnTransactionId = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
processTime = fields.DateTime(required=True)
consentType = fields.Str(required=True)
countryId = fields.Str(required=True)
comment = fields.Str(required=False)
+1 -1
View File
@@ -4,7 +4,7 @@ from marshmallow import Schema, fields
# Transaction Verify Schema
class TransactionVerifySchema(Schema):
counter = fields.Str(required=True)
TransactionId = fields.Str(required=True)
transactionId = fields.Str(required=True)
requestID = fields.Str(required=True)
customerId = fields.Str(required=True)
accountId = fields.Str(required=True)
+9
View File
@@ -0,0 +1,9 @@
from app.services.rac_check import RACCheckService
from app.services.disbursement import DisbursementService
from app.services.collect_loan import CollectLoanService
from app.services.transaction_verify import TransactionVerifyService
from app.services.penal_charge import PenalChargeService
from app.services.revoke_enable_consent import RevokeEnableConsentService
from app.services.token_validation import TokenValidationService
from app.services.lien_check import LienCheckService
from app.services.new_transaction_check import NewTransactionCheckService
@@ -1,4 +1,4 @@
from flask import request
from flask import request, jsonify
from marshmallow import ValidationError
from app.utils.logger import logger
from app.helpers.response_helper import ResponseHelper
@@ -44,18 +44,18 @@ class CollectLoanService:
# data=response_data,
# message="Loan collection completed successfully"
# )
return response_data
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -40,14 +40,12 @@ class CustomerConsentService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -1,4 +1,4 @@
from flask import request
from flask import request, jsonify
from marshmallow import ValidationError
from app.utils.logger import logger
from app.helpers.response_helper import ResponseHelper
@@ -51,14 +51,12 @@ class DisbursementService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -39,14 +39,12 @@ class LienCheckService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -46,14 +46,12 @@ class NewTransactionCheckService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -40,14 +40,12 @@ class PenalChargeService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -52,14 +52,12 @@ class RACCheckService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -43,14 +43,12 @@ class RevokeEnableConsentService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -43,14 +43,12 @@ class TokenValidationService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500
@@ -46,14 +46,12 @@ class TransactionVerifyService:
except ValidationError as err:
logger.error(f"Validation Error: {err.messages}")
return ResponseHelper.error(
message="Invalid input data",
status_code=400,
error=err.messages
)
return jsonify({
"message": "Validation exception"
}) , 422
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
return ResponseHelper.internal_server_error(
error=str(e)
)
return jsonify({
"message": "Internal Server Error"
}) , 500