File size: 1,835 Bytes
ef1ad9e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
from datetime import datetime
from typing import Any
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 get_current_datetime():
# Get the current datetime object
now = datetime.now()
# Format the datetime object in the desired format and return
return now.strftime("%Y-%m-%d %H:%M:%S.%f")
def update_table(db, model, data_dict):
for field, value in data_dict.items():
# Exclude updating if field is 'userId'
if field == "userId":
continue
if isinstance(value, bool):
value = str(int(value))
setattr(model, field, value)
db.add(model)
db.commit()
return
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
|