You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.3 KiB
40 lines
1.3 KiB
from fastapi import APIRouter, Depends
|
|
from ..crud.servers import get, get_all,delete,update, create
|
|
from typing import Annotated, Sequence
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from ..db_helper import db_helper
|
|
from ..schemas import ServerBase, ServerSchema
|
|
router = APIRouter( tags=["Server"], prefix="/server")
|
|
|
|
@router.get("/", response_model=Sequence[ServerSchema])
|
|
async def get_all_server(session: Annotated[AsyncSession, Depends(db_helper.session_getter)]):
|
|
return await get_all(session)
|
|
|
|
|
|
@router.get("/{id}", response_model=ServerSchema)
|
|
async def get_server(session: Annotated[AsyncSession, Depends(db_helper.session_getter)],id:int):
|
|
return await get(session,id)
|
|
|
|
@router.post("/", response_model=ServerSchema)
|
|
async def create_server(
|
|
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
|
model: ServerBase
|
|
):
|
|
login = await create(
|
|
session=session,
|
|
model=model
|
|
)
|
|
return login
|
|
|
|
@router.patch("/{id}", response_model=ServerSchema)
|
|
async def update_server(
|
|
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
|
id: int,
|
|
model: ServerBase
|
|
):
|
|
login = await update(
|
|
session=session,
|
|
id=id,
|
|
model=model
|
|
)
|
|
return login
|