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