60 lines
1.3 KiB
Python
60 lines
1.3 KiB
Python
from pathlib import Path
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from backend.dependecies import SessionDependency
|
|
from schemas.deal_group import *
|
|
from services import DealGroupService
|
|
|
|
router = APIRouter(tags=["deal-group"])
|
|
|
|
|
|
@router.patch(
|
|
"/{pk}",
|
|
response_model=UpdateDealGroupResponse,
|
|
operation_id="update_deal_group",
|
|
)
|
|
async def update_group(
|
|
request: UpdateDealGroupRequest,
|
|
session: SessionDependency,
|
|
pk: int = Path(),
|
|
):
|
|
return await DealGroupService(session).update(pk, request)
|
|
|
|
|
|
@router.post(
|
|
"/",
|
|
response_model=CreateDealGroupResponse,
|
|
operation_id="create_deal_group",
|
|
)
|
|
async def create_group(
|
|
request: CreateDealGroupRequest,
|
|
session: SessionDependency,
|
|
):
|
|
return await DealGroupService(session).create(request)
|
|
|
|
|
|
@router.delete(
|
|
"/{pk}",
|
|
response_model=DeleteDealGroupResponse,
|
|
operation_id="delete_deal_group",
|
|
)
|
|
async def delete_group(
|
|
session: SessionDependency,
|
|
pk: int = Path(),
|
|
):
|
|
return await DealGroupService(session).delete(pk)
|
|
|
|
|
|
@router.post(
|
|
"/{pk}/deals",
|
|
response_model=UpdateDealsInGroupResponse,
|
|
operation_id="update_deals_in_group",
|
|
)
|
|
async def update_deals_in_group(
|
|
request: UpdateDealsInGroupRequest,
|
|
session: SessionDependency,
|
|
pk: int = Path(),
|
|
):
|
|
return await DealGroupService(session).update_deals_in_group(pk, request)
|