feat: billing guest access
This commit is contained in:
183
routers/deal.py
183
routers/deal.py
@@ -3,22 +3,24 @@ from typing import Annotated
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from backend.dependecies import SessionDependency
|
||||
from backend.dependecies import SessionDependency, CurrentUserDependency
|
||||
from backend.session import get_session
|
||||
from models import User
|
||||
from schemas.deal import *
|
||||
from services.auth import get_current_user
|
||||
from services.auth import get_current_user, authorized_user, guest_user
|
||||
from services.deal import DealService
|
||||
|
||||
deal_router = APIRouter(
|
||||
prefix='/deal',
|
||||
tags=['deal'],
|
||||
dependencies=[Depends(get_current_user)]
|
||||
)
|
||||
|
||||
|
||||
# region Deal
|
||||
@deal_router.post('/create')
|
||||
@deal_router.post(
|
||||
'/create',
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def create(
|
||||
request: DealCreateRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
@@ -30,7 +32,8 @@ async def create(
|
||||
@deal_router.post(
|
||||
'/delete',
|
||||
response_model=DealDeleteResponse,
|
||||
operation_id='deleteDeal'
|
||||
operation_id='deleteDeal',
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def delete(
|
||||
request: DealDeleteRequest,
|
||||
@@ -39,7 +42,11 @@ async def delete(
|
||||
return await DealService(session).delete(request)
|
||||
|
||||
|
||||
@deal_router.post('/quickCreate', response_model=DealQuickCreateResponse)
|
||||
@deal_router.post(
|
||||
'/quickCreate',
|
||||
response_model=DealQuickCreateResponse,
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def quick_create(
|
||||
request: DealQuickCreateRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
@@ -48,7 +55,11 @@ async def quick_create(
|
||||
return await DealService(session).quick_create(request, user)
|
||||
|
||||
|
||||
@deal_router.post('/changeStatus', response_model=DealChangeStatusResponse)
|
||||
@deal_router.post(
|
||||
'/changeStatus',
|
||||
response_model=DealChangeStatusResponse,
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def change_status(
|
||||
request: DealChangeStatusRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
@@ -57,10 +68,12 @@ async def change_status(
|
||||
return await DealService(session).change_status_manual(request, user)
|
||||
|
||||
|
||||
@deal_router.get('/summaries',
|
||||
response_model=DealSummaryResponse,
|
||||
operation_id='getDealSummaries'
|
||||
)
|
||||
@deal_router.get(
|
||||
'/summaries',
|
||||
response_model=DealSummaryResponse,
|
||||
operation_id='getDealSummaries',
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def get_summary(
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
):
|
||||
@@ -70,7 +83,8 @@ async def get_summary(
|
||||
@deal_router.post(
|
||||
'/summaries/reorder',
|
||||
response_model=DealSummaryResponse,
|
||||
operation_id='reorderDealSummaries'
|
||||
operation_id='reorderDealSummaries',
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def reorder(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
@@ -83,7 +97,8 @@ async def reorder(
|
||||
@deal_router.get(
|
||||
'/get-all',
|
||||
response_model=DealGetAllResponse,
|
||||
operation_id='getAllDeals'
|
||||
operation_id='getAllDeals',
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def get_all(
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
@@ -95,19 +110,22 @@ async def get_all(
|
||||
@deal_router.get(
|
||||
'/get/{deal_id}',
|
||||
response_model=DealSchema,
|
||||
operation_id='getDealById'
|
||||
operation_id='getDealById',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def get_deal_by_id(
|
||||
deal_id: int,
|
||||
user: CurrentUserDependency,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
):
|
||||
return await DealService(session).get_by_id(deal_id)
|
||||
return await DealService(session).get_by_id(user, deal_id)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/update-general-info',
|
||||
response_model=DealUpdateGeneralInfoResponse,
|
||||
operation_id='updateDealGeneralInfo'
|
||||
operation_id='updateDealGeneralInfo',
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def update_general_info(
|
||||
request: DealUpdateGeneralInfoRequest,
|
||||
@@ -115,16 +133,34 @@ async def update_general_info(
|
||||
):
|
||||
return await DealService(session).update_general_info(request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/add-kit',
|
||||
response_model=DealAddKitResponse,
|
||||
operation_id='add_kit_to_deal'
|
||||
|
||||
)
|
||||
async def add_kit_to_deal(
|
||||
session:SessionDependency,
|
||||
request:DealAddKitRequest
|
||||
session: SessionDependency,
|
||||
request: DealAddKitRequest
|
||||
):
|
||||
return await DealService(session).add_kit_to_deal(request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/create-guest-url',
|
||||
response_model=DealCreateGuestUrlResponse,
|
||||
operation_id='create_deal_guest_url',
|
||||
dependencies=[Depends(authorized_user)]
|
||||
)
|
||||
async def create_guest_url(
|
||||
session: SessionDependency,
|
||||
request: DealCreateGuestUrlRequest,
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return DealService(session).create_guest_url(user, request)
|
||||
|
||||
|
||||
# endregion
|
||||
|
||||
# region Deal services
|
||||
@@ -132,11 +168,12 @@ async def add_kit_to_deal(
|
||||
@deal_router.post(
|
||||
'/services/add/multiple',
|
||||
response_model=DealAddServicesResponse,
|
||||
operation_id='addMultipleDealServices'
|
||||
operation_id='addMultipleDealServices',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def services_add(
|
||||
request: DealAddServicesRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
):
|
||||
return await DealService(session).add_services(request)
|
||||
|
||||
@@ -144,73 +181,86 @@ async def services_add(
|
||||
@deal_router.post(
|
||||
'/services/add',
|
||||
response_model=DealAddServiceResponse,
|
||||
operation_id='addDealService'
|
||||
operation_id='addDealService',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def services_add(
|
||||
request: DealAddServiceRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).add_service(request)
|
||||
return await DealService(session).add_service(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/services/update-quantity',
|
||||
response_model=DealUpdateServiceQuantityResponse,
|
||||
operation_id='updateDealServiceQuantity'
|
||||
operation_id='updateDealServiceQuantity',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def services_update_quantity(
|
||||
request: DealUpdateServiceQuantityRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
|
||||
):
|
||||
return await DealService(session).update_service_quantity(request)
|
||||
return await DealService(session).update_service_quantity(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/services/update',
|
||||
response_model=DealUpdateServiceResponse,
|
||||
operation_id='updateDealService'
|
||||
operation_id='updateDealService',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def services_update(
|
||||
request: DealUpdateServiceRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).update_service(request)
|
||||
return await DealService(session).update_service(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/services/delete',
|
||||
response_model=DealDeleteServiceResponse,
|
||||
operation_id='deleteDealService'
|
||||
operation_id='deleteDealService',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def services_delete(
|
||||
request: DealDeleteServiceRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).delete_service(request)
|
||||
return await DealService(session).delete_service(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/services/delete/multiple',
|
||||
response_model=DealDeleteServicesResponse,
|
||||
operation_id='deleteMultipleDealServices'
|
||||
operation_id='deleteMultipleDealServices',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def services_delete(
|
||||
request: DealDeleteServicesRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).delete_services(request)
|
||||
return await DealService(session).delete_services(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/services/copy',
|
||||
response_model=DealServicesCopyResponse,
|
||||
operation_id='copy_product_services'
|
||||
operation_id='copy_product_services',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def services_copy(
|
||||
session: SessionDependency,
|
||||
request: DealServicesCopyRequest
|
||||
request: DealServicesCopyRequest,
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).copy_services(request)
|
||||
return await DealService(session).copy_services(user, request)
|
||||
|
||||
|
||||
# endregion
|
||||
@@ -219,63 +269,84 @@ async def services_copy(
|
||||
@deal_router.post(
|
||||
'/products/update-quantity',
|
||||
response_model=DealUpdateProductQuantityResponse,
|
||||
operation_id='updateDealProductQuantity')
|
||||
operation_id='updateDealProductQuantity',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def products_update(
|
||||
request: DealUpdateProductQuantityRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]):
|
||||
return await DealService(session).update_product_quantity(request)
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).update_product_quantity(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/products/add',
|
||||
response_model=DealAddProductResponse,
|
||||
operation_id='addDealProduct')
|
||||
operation_id='addDealProduct',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def products_add(
|
||||
request: DealAddProductRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]):
|
||||
return await DealService(session).add_product(request)
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).add_product(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/products/delete',
|
||||
response_model=DealDeleteProductResponse,
|
||||
operation_id='deleteDealProduct')
|
||||
operation_id='deleteDealProduct',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def products_delete(
|
||||
request: DealDeleteProductRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]):
|
||||
return await DealService(session).delete_product(request)
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
|
||||
):
|
||||
return await DealService(session).delete_product(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/products/delete/multiple',
|
||||
response_model=DealDeleteProductsResponse,
|
||||
operation_id='deleteMultipleDealProducts')
|
||||
operation_id='deleteMultipleDealProducts',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def products_delete(
|
||||
request: DealDeleteProductsRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]):
|
||||
return await DealService(session).delete_products(request)
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).delete_products(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/product/update',
|
||||
response_model=DealUpdateProductResponse,
|
||||
operation_id='updateDealProduct'
|
||||
operation_id='updateDealProduct',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def products_update(
|
||||
request: DealUpdateProductRequest,
|
||||
session: Annotated[AsyncSession, Depends(get_session)]
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).update_product(request)
|
||||
return await DealService(session).update_product(user, request)
|
||||
|
||||
|
||||
@deal_router.post(
|
||||
'/product/add-kit',
|
||||
response_model=DealProductAddKitResponse,
|
||||
operation_id='add_kit_to_deal_product'
|
||||
operation_id='add_kit_to_deal_product',
|
||||
dependencies=[Depends(guest_user)]
|
||||
)
|
||||
async def add_kit_to_deal_product(
|
||||
session: SessionDependency,
|
||||
request: DealProductAddKitRequest
|
||||
request: DealProductAddKitRequest,
|
||||
user: CurrentUserDependency
|
||||
):
|
||||
return await DealService(session).add_kit_to_deal_product(request)
|
||||
return await DealService(session).add_kit_to_deal_product(user, request)
|
||||
# endregion
|
||||
|
||||
Reference in New Issue
Block a user