Files
Fulfillment-Backend/routers/product.py
2024-03-28 08:22:14 +03:00

40 lines
1.0 KiB
Python

from typing import Annotated
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
import utils.dependecies
from backend.session import get_session
from schemas.base import PaginationSchema
from schemas.product import *
from services.product import ProductService
product_router = APIRouter(
prefix="/product",
tags=["product"]
)
@product_router.post(
'/create',
response_model=ProductCreateResponse
)
async def create_product(
request: ProductCreateRequest,
session: Annotated[AsyncSession, Depends(get_session)]
):
return await ProductService(session).create(request)
@product_router.get(
'/get',
response_model=ProductGetResponse,
operation_id='get_products_by_client_id'
)
async def get_product(
client_id: int,
pagination: Annotated[PaginationSchema, Depends(utils.dependecies.pagination_parameters)],
session: Annotated[AsyncSession, Depends(get_session)]
):
return await ProductService(session).get_by_client_id(client_id, pagination)