move app to gatehouse-app
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
"""API response utilities."""
|
||||
from flask import jsonify, g
|
||||
|
||||
|
||||
# Version for the response envelope
|
||||
ENVELOPE_VERSION = "1.0"
|
||||
|
||||
|
||||
def api_response(
|
||||
*,
|
||||
data=None,
|
||||
success=True,
|
||||
message="",
|
||||
status=200,
|
||||
error_type=None,
|
||||
error_details=None,
|
||||
meta=None
|
||||
):
|
||||
"""
|
||||
Create a standardized API response.
|
||||
|
||||
Args:
|
||||
data: Response data (only included if success=True)
|
||||
success: Whether the request was successful
|
||||
message: Human-readable message
|
||||
status: HTTP status code
|
||||
error_type: Type of error (only if success=False)
|
||||
error_details: Additional error details (only if success=False)
|
||||
meta: Additional metadata (pagination, etc.)
|
||||
|
||||
Returns:
|
||||
Tuple of (response, status_code)
|
||||
"""
|
||||
payload = {
|
||||
"version": ENVELOPE_VERSION,
|
||||
"success": success,
|
||||
"code": status,
|
||||
"message": message,
|
||||
"request_id": g.get("request_id", "unknown"),
|
||||
}
|
||||
|
||||
if meta:
|
||||
payload["meta"] = meta
|
||||
|
||||
if success:
|
||||
if data is not None:
|
||||
payload["data"] = data
|
||||
else:
|
||||
payload["error"] = {
|
||||
"type": error_type or "UNKNOWN",
|
||||
"details": error_details or {}
|
||||
}
|
||||
|
||||
return jsonify(payload), status
|
||||
Reference in New Issue
Block a user