Реализация crud и его добавление в RESTfull
This commit is contained in:
53
backend-app/api/api_v1/login.py
Normal file
53
backend-app/api/api_v1/login.py
Normal file
@ -0,0 +1,53 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from core.settings import settings
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from typing import Annotated
|
||||
from core.models import db_helper
|
||||
from repo.schemas import LoginCreate,LoginRead, LoginUpdate
|
||||
import repo.crud.login as crud
|
||||
router = APIRouter(
|
||||
prefix=settings.api.v1.login,
|
||||
tags=["Login"]
|
||||
)
|
||||
|
||||
@router.get("/", response_model=list[LoginRead])
|
||||
async def get_all_logins(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)]
|
||||
):
|
||||
logins = await crud.get_all_logins(session=session)
|
||||
return logins
|
||||
|
||||
@router.get("/{login_id}", response_model=LoginRead)
|
||||
async def get_login(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
||||
login_id: int
|
||||
):
|
||||
login = await crud.get_login(
|
||||
session=session,
|
||||
login_id=login_id
|
||||
)
|
||||
return login
|
||||
|
||||
@router.post("/", response_model=LoginRead)
|
||||
async def create_login(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
||||
login_create: LoginCreate
|
||||
):
|
||||
login = await crud.create_login(
|
||||
session=session,
|
||||
login_create=login_create
|
||||
)
|
||||
return login
|
||||
|
||||
@router.patch("/{login_id}", response_model=LoginRead)
|
||||
async def update_login(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
||||
login_id: int,
|
||||
login_update: LoginUpdate
|
||||
):
|
||||
login = await crud.update_login(
|
||||
session=session,
|
||||
login_id=login_id,
|
||||
login_update=login_update
|
||||
)
|
||||
return login
|
Reference in New Issue
Block a user