Files
exproject/backend-app/api/api_v1/login.py

54 lines
1.5 KiB
Python

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