Files
Fulfillment-Backend/routers/billing.py
2024-08-08 07:49:53 +03:00

52 lines
1.2 KiB
Python

from fastapi import APIRouter
from backend.dependecies import SessionDependency, CurrentUserDependency
from external.billing import BillStatusUpdateRequest
from schemas.billing import *
from services.billing import BillingService
billing_router = APIRouter(
prefix='/billing',
tags=['billing']
)
@billing_router.post(
'/webhook'
)
async def webhook(
request: BillStatusUpdateRequest,
session: SessionDependency
):
try:
await BillingService(session).process_update(request)
return {'ok': True}
except Exception as e:
print(e)
return {'ok': False}
@billing_router.post(
'/create-deal-bill',
operation_id='create_deal_bill',
response_model=CreateDealBillResponse
)
async def create_deal_bill(
session: SessionDependency,
request: CreateDealBillRequest,
user: CurrentUserDependency
):
return await BillingService(session).create_deal_billing(user, request)
@billing_router.get(
'/deal-bill-request/{deal_id}',
response_model=GetDealBillById,
operation_id='get_deal_bill_by_id'
)
async def get_deal_bill_by_id(
deal_id: int,
session: SessionDependency
):
return await BillingService(session).get_deal_bill_by_id(deal_id)