Dagemark-Backend/app/logic/project_logic.py
2026-08-10 23:11:21 +02:00

59 lines
1.3 KiB
Python

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