59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
from fastapi import APIRouter, Path
|
|
|
|
from backend.dependecies import SessionDependency
|
|
from modules.fulfillment_base.schemas.deal_service import *
|
|
from modules.fulfillment_base.services import DealServiceService
|
|
|
|
router = APIRouter(tags=["deal-service"])
|
|
|
|
|
|
@router.get(
|
|
"/{dealId}",
|
|
response_model=GetDealServicesResponse,
|
|
operation_id="get_deal_services",
|
|
)
|
|
async def get_deal_services(
|
|
session: SessionDependency,
|
|
deal_id: int = Path(alias="dealId"),
|
|
):
|
|
return await DealServiceService(session).get_all(deal_id)
|
|
|
|
|
|
@router.post(
|
|
"/",
|
|
response_model=CreateDealServiceResponse,
|
|
operation_id="create_deal_service",
|
|
)
|
|
async def create_deal_service(
|
|
session: SessionDependency,
|
|
request: CreateDealServiceRequest,
|
|
):
|
|
return await DealServiceService(session).create(request)
|
|
|
|
|
|
@router.patch(
|
|
"/{dealId}/service/{serviceId}",
|
|
response_model=UpdateDealServiceResponse,
|
|
operation_id="update_deal_service",
|
|
)
|
|
async def update_deal_service(
|
|
session: SessionDependency,
|
|
request: UpdateDealServiceRequest,
|
|
deal_id: int = Path(alias="dealId"),
|
|
service_id: int = Path(alias="serviceId"),
|
|
):
|
|
return await DealServiceService(session).update(deal_id, service_id, request)
|
|
|
|
|
|
@router.delete(
|
|
"/{dealId}/service/{serviceId}",
|
|
response_model=DeleteDealServiceResponse,
|
|
operation_id="delete_deal_service",
|
|
)
|
|
async def delete_deal_service(
|
|
session: SessionDependency,
|
|
deal_id: int = Path(alias="dealId"),
|
|
service_id: int = Path(alias="serviceId"),
|
|
):
|
|
return await DealServiceService(session).delete(deal_id, service_id)
|