54 lines
1.5 KiB
Python
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
|