Реализация crud и его добавление в RESTfull
This commit is contained in:
13
backend-app/api/api_v1/__init__.py
Normal file
13
backend-app/api/api_v1/__init__.py
Normal file
@ -0,0 +1,13 @@
|
||||
from fastapi import APIRouter
|
||||
from core.settings import settings
|
||||
from .login import router as login_router
|
||||
from .user import router as user_router
|
||||
router = APIRouter(
|
||||
prefix=settings.api.v1.prefix,
|
||||
)
|
||||
router.include_router(
|
||||
user_router
|
||||
)
|
||||
router.include_router(
|
||||
login_router
|
||||
)
|
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
|
57
backend-app/api/api_v1/user.py
Normal file
57
backend-app/api/api_v1/user.py
Normal file
@ -0,0 +1,57 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from core.settings import settings
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from typing import Annotated
|
||||
from repo.schemas import UserRead, UserCreate, UserUpdate
|
||||
from core.models import db_helper
|
||||
|
||||
import repo.crud.user as crud
|
||||
|
||||
router = APIRouter(
|
||||
prefix=settings.api.v1.user,
|
||||
tags=["Users"]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@router.get("/", response_model=list[UserRead])
|
||||
async def get_all_users(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)]
|
||||
):
|
||||
users = await crud.get_all_users(session=session)
|
||||
return users
|
||||
|
||||
@router.get("/{user_id}", response_model=UserRead)
|
||||
async def get_user(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
||||
user_id: int
|
||||
):
|
||||
users = await crud.get_user(
|
||||
session=session,
|
||||
user_id=user_id
|
||||
)
|
||||
return users
|
||||
|
||||
@router.post("/", response_model=UserRead)
|
||||
async def create_user(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
||||
user_create: UserCreate
|
||||
):
|
||||
users = await crud.create_user(
|
||||
session=session,
|
||||
user_create=user_create
|
||||
)
|
||||
return users
|
||||
|
||||
@router.patch("/{user_id}", response_model=UserRead)
|
||||
async def update_user(
|
||||
session: Annotated[AsyncSession, Depends(db_helper.session_getter)],
|
||||
user_id: int,
|
||||
user_update: UserUpdate
|
||||
):
|
||||
users = await crud.update_user(
|
||||
session=session,
|
||||
user_id=user_id,
|
||||
user_update=user_update
|
||||
)
|
||||
return users
|
Reference in New Issue
Block a user