112 lines
3.7 KiB
Python
112 lines
3.7 KiB
Python
from flask import jsonify
|
|
from typing import Optional, Union, Dict, List, Any
|
|
|
|
|
|
class ResponseHelper:
|
|
"""
|
|
A helper class for building standardized JSON responses using resultCode and resultDescription.
|
|
"""
|
|
|
|
@staticmethod
|
|
def build_response(
|
|
result_code: str,
|
|
result_description: str,
|
|
data: Optional[Union[Dict, List, str]] = None
|
|
) -> Dict[str, Any]:
|
|
response = {
|
|
"resultCode": result_code,
|
|
"resultDescription": result_description
|
|
}
|
|
|
|
if isinstance(data, dict):
|
|
response.update(data)
|
|
|
|
return jsonify(response)
|
|
|
|
@staticmethod
|
|
def success(
|
|
result_description: str = "Successful",
|
|
result_code: str = "0",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def error(
|
|
result_description: str = "An error occurred",
|
|
result_code: str = "01",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def created(
|
|
result_description: str = "Resource created successfully",
|
|
result_code: str = "00",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def updated(
|
|
result_description: str = "Resource updated successfully",
|
|
result_code: str = "00",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def internal_server_error(
|
|
result_description: str = "Internal Server Error",
|
|
result_code: str = "500",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def unauthorized(
|
|
result_description: str = "Unauthorized",
|
|
result_code: str = "401",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def forbidden(
|
|
result_description: str = "Forbidden",
|
|
result_code: str = "403",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def not_found(
|
|
result_description: str = "Resource not found",
|
|
result_code: str = "404",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def unprocessable_entity(
|
|
result_description: str = "Unprocessable entity",
|
|
result_code: str = "422",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def method_not_allowed(
|
|
result_description: str = "Method Not Allowed",
|
|
result_code: str = "405",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data)
|
|
|
|
@staticmethod
|
|
def bad_request(
|
|
result_description: str = "Bad Request",
|
|
result_code: str = "400",
|
|
data: Optional[Dict[str, Any]] = None
|
|
) -> Dict[str, Any]:
|
|
return ResponseHelper.build_response(result_code, result_description, data) |