Files
eamco_office_api/app/common/responses.py

55 lines
1.4 KiB
Python

"""
Standardized API response utilities for consistent error and success responses.
Usage:
from app.common.responses import error_response, success_response
# Error responses
return error_response("User not found", 404)
return error_response("Invalid credentials", 401)
return error_response("Server error", 500, details=str(e))
# Success responses
return success_response({"user": user_data})
return success_response({"message": "Created"}, 201)
"""
from flask import jsonify
def error_response(message: str, status_code: int = 400, details: str = None):
"""
Create a standardized error response.
Args:
message: Human-readable error message
status_code: HTTP status code (default 400)
details: Optional additional details (e.g., exception info)
Returns:
Tuple of (JSON response, status code)
"""
response = {
"ok": False,
"error": message
}
if details:
response["details"] = details
return jsonify(response), status_code
def success_response(data: dict = None, status_code: int = 200):
"""
Create a standardized success response.
Args:
data: Response data dictionary
status_code: HTTP status code (default 200)
Returns:
Tuple of (JSON response, status code)
"""
response = {"ok": True}
if data:
response.update(data)
return jsonify(response), status_code