58 lines
1.1 KiB
Python
58 lines
1.1 KiB
Python
from fastapi import APIRouter
|
|
|
|
from app.logic.project_logic import (
|
|
create,
|
|
delete,
|
|
get_all,
|
|
get_by_id,
|
|
get_with_parent,
|
|
update,
|
|
)
|
|
from app.models.project import Project
|
|
|
|
router = APIRouter(prefix="/projects", tags=["projects"])
|
|
|
|
|
|
@router.get("/")
|
|
def get_default():
|
|
return {"message": "Root for Projects API"}
|
|
|
|
|
|
@router.get("/all")
|
|
def get_all_projects(parent: int | None = None):
|
|
if parent:
|
|
return get_with_parent(parent)
|
|
return get_all()
|
|
|
|
|
|
@router.get("/project/{project_id}")
|
|
def get_project_by_id(project_id: int):
|
|
return get_by_id(project_id)
|
|
|
|
|
|
@router.get("/parent/{parent_id}")
|
|
def get_project_by_parent_id(parent_id: int):
|
|
return get_with_parent(parent_id)
|
|
|
|
|
|
@router.post("/")
|
|
def create_project(project: Project):
|
|
return create(project)
|
|
|
|
|
|
@router.put("/{project_id}")
|
|
def update_project(
|
|
project_id: int,
|
|
update_attribute: str,
|
|
new_value: str | int | None,
|
|
):
|
|
return update(
|
|
project_id,
|
|
update_attribute,
|
|
new_value,
|
|
)
|
|
|
|
|
|
@router.delete("/{project_id}")
|
|
def delete_project(project_id: int):
|
|
return delete(project_id)
|