50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
from sqlmodel import inspect
|
|
|
|
from app.database import (
|
|
add_to_database,
|
|
delete_from_database_where,
|
|
get_from_database,
|
|
get_from_database_where_id,
|
|
update_database_where,
|
|
)
|
|
from app.models.service import Service
|
|
|
|
|
|
def get_all():
|
|
return get_from_database(Service)
|
|
|
|
|
|
def get_by_id(service_id: int):
|
|
return get_from_database_where_id(Service, service_id)
|
|
|
|
|
|
def create(service: Service):
|
|
add_to_database(service)
|
|
return service
|
|
|
|
|
|
def update(
|
|
service_id: int,
|
|
update_attribute: str,
|
|
new_value: int | str | None,
|
|
):
|
|
if update_attribute not in inspect(Service).attrs:
|
|
raise ValueError(f"Invalid attribute: {update_attribute}")
|
|
|
|
attribute = getattr(Service, update_attribute)
|
|
|
|
return update_database_where(
|
|
Service,
|
|
Service.id, # type: ignore (Type correct on runtime)
|
|
service_id,
|
|
attribute,
|
|
new_value,
|
|
)
|
|
|
|
|
|
def delete(service_id: int):
|
|
return delete_from_database_where(
|
|
Service,
|
|
Service.id, # type: ignore (Type correct on runtime)
|
|
service_id,
|
|
)
|