Add service model, route, and logic
This commit is contained in:
parent
4fc1f58f30
commit
e72ec07c45
4 changed files with 108 additions and 1 deletions
43
app/logic/service_logic.py
Normal file
43
app/logic/service_logic.py
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
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,
|
||||
):
|
||||
return update_database_where(
|
||||
Service,
|
||||
Service.id,
|
||||
service_id,
|
||||
update_attribute,
|
||||
new_value,
|
||||
)
|
||||
|
||||
|
||||
def delete(service_id: int):
|
||||
return delete_from_database_where(
|
||||
Service,
|
||||
Service.id,
|
||||
service_id,
|
||||
)
|
||||
|
|
@ -4,7 +4,7 @@ from fastapi import FastAPI
|
|||
|
||||
from app.config import settings
|
||||
from app.database import create_database
|
||||
from app.routers import project_route
|
||||
from app.routers import project_route, service_route
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
|
|
@ -23,3 +23,4 @@ app = FastAPI(
|
|||
|
||||
|
||||
app.include_router(project_route.router)
|
||||
app.include_router(service_route.router)
|
||||
|
|
|
|||
13
app/models/service.py
Normal file
13
app/models/service.py
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
from sqlmodel import Field, SQLModel
|
||||
|
||||
|
||||
class Service(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
|
||||
title: str
|
||||
|
||||
description: str | None = Field(default=None)
|
||||
|
||||
priority: int
|
||||
|
||||
link: str
|
||||
50
app/routers/service_route.py
Normal file
50
app/routers/service_route.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
from fastapi import APIRouter
|
||||
|
||||
from app.logic.service_logic import (
|
||||
create,
|
||||
delete,
|
||||
get_all,
|
||||
get_by_id,
|
||||
update,
|
||||
)
|
||||
from app.models.service import Service
|
||||
|
||||
router = APIRouter(prefix="/services", tags=["services"])
|
||||
|
||||
|
||||
@router.get("/")
|
||||
def get_default():
|
||||
return {"message": "Root for Services API"}
|
||||
|
||||
|
||||
@router.get("/all")
|
||||
def get_all_services():
|
||||
return get_all()
|
||||
|
||||
|
||||
@router.get("/{service_id}")
|
||||
def get_service_by_id(service_id: int):
|
||||
return get_by_id(service_id)
|
||||
|
||||
|
||||
@router.post("/")
|
||||
def create_service(service: Service):
|
||||
return create(service)
|
||||
|
||||
|
||||
@router.put("/{service_id}")
|
||||
def update_service(
|
||||
service_id: int,
|
||||
update_attribute: str,
|
||||
new_value: str | int | None,
|
||||
):
|
||||
return update(
|
||||
service_id,
|
||||
update_attribute,
|
||||
new_value,
|
||||
)
|
||||
|
||||
|
||||
@router.delete("/{service_id}")
|
||||
def delete_service(service_id: int):
|
||||
return delete(service_id)
|
||||
Loading…
Reference in a new issue