ans123's picture
Initial upload from Colab
ef1ad9e verified
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.
"""
# Initialize with the success response
responses = {200: {"content": {"application/json": {"example": success_data}}}}
# Add each error response from the list
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}"}}},
}
}