|
from typing import Any, Dict
|
|
|
|
|
|
def to_dict(model_instance) -> dict[str, Any]:
|
|
"""
|
|
Returns a dictionary representation of a model instance.
|
|
|
|
Includes all attributes defined on the model class.
|
|
|
|
Args:
|
|
model_instance: The model instance to convert to a dictionary.
|
|
|
|
Returns
|
|
-------
|
|
A dictionary containing all attributes and their values.
|
|
"""
|
|
return {c.name: getattr(model_instance, c.name) for c in model_instance.__table__.columns}
|
|
|
|
|
|
def create_swagger_response(success_data, error_response_list=None):
|
|
"""
|
|
Create a Swagger response example for both success and error responses.
|
|
|
|
- **success_data**: Example data to include in the success response.
|
|
- **error_response_list**: List of error responses to include in the Swagger documentation.
|
|
|
|
Returns a dictionary representing the success and error responses.
|
|
"""
|
|
|
|
responses = {200: {"content": {"application/json": {"example": success_data}}}}
|
|
|
|
|
|
if error_response_list:
|
|
for error_response in error_response_list:
|
|
responses.update(error_response)
|
|
|
|
return responses
|
|
|
|
|
|
def create_swagger_redirect_response(description: str, example_url: str) -> Dict[str, Any]:
|
|
"""
|
|
Creates a Swagger response dictionary for redirect responses.
|
|
|
|
Args:
|
|
description (str): A description of the redirect response.
|
|
example_url (str): An example URL that demonstrates the redirect.
|
|
|
|
Returns
|
|
-------
|
|
Dict[str, Any]: A dictionary for Swagger response documentation.
|
|
"""
|
|
return {
|
|
"307": {
|
|
"description": description,
|
|
"headers": {
|
|
"Location": {
|
|
"description": "The URL to which the client is redirected.",
|
|
"schema": {"type": "string", "example": example_url},
|
|
}
|
|
},
|
|
"content": {"text/plain": {"schema": {"type": "string", "example": f"Redirecting to {example_url}"}}},
|
|
}
|
|
}
|
|
|