[fix]: Response messages
This commit is contained in:
@@ -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
|
||||
@@ -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,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
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
@@ -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
|
||||
@@ -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,5 +1,5 @@
|
||||
from flask import Blueprint, request, jsonify
|
||||
from app.blueprints import (
|
||||
from app.services import (
|
||||
RACCheckService,
|
||||
DisbursementService,
|
||||
CollectLoanService,
|
||||
|
||||
+13
-13
@@ -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
|
||||
@@ -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)
|
||||
@@ -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 user’s account"})
|
||||
penalCharge = fields.Decimal(required=True, metadata={"description": "Penalty amount that needs to be collected from user’s 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)
|
||||
|
||||
@@ -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 user’s 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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user