43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from fastapi import APIRouter, Depends, Request
|
|
from services.stripeServices import StripeServices
|
|
from middleware.auth_dependency import auth_required
|
|
from schemas.ApiResponse import ApiResponse
|
|
|
|
router = APIRouter()
|
|
|
|
stripe_service = StripeServices()
|
|
|
|
# @router.post("/create-checkout-session")
|
|
# async def create_checkout_session(user_id: int):
|
|
# return await stripe_service.create_checkout_session(1)
|
|
|
|
# @router.post("/create-subscription-checkout")
|
|
# async def create_subscription_checkout():
|
|
# return await stripe_service.create_subscription_checkout(
|
|
# fees_to_be={
|
|
# "per_call_charges": 10,
|
|
# "setup_fees": 100,
|
|
# "subscription_fees": 100,
|
|
# "total": 210
|
|
# },
|
|
# clinic_id=1,
|
|
# account_id="acct_1RT1UFPTNqn2kWQ8",
|
|
# customer_id="cus_SNn49FDltUcSLP"
|
|
# )
|
|
|
|
|
|
@router.get("/get-invoice", dependencies=[Depends(auth_required)])
|
|
async def get_invoice(req:Request):
|
|
invoice_url = await stripe_service.get_invoice(req.state.user)
|
|
return ApiResponse(data=invoice_url, message="Invoice URL retrieved successfully")
|
|
|
|
|
|
@router.post("/create-payment-session", dependencies=[Depends(auth_required)])
|
|
async def create_payment_session(req:Request):
|
|
session = await stripe_service.create_payment_session(req.state.user)
|
|
return ApiResponse(data=session, message="Payment session created successfully")
|
|
|
|
@router.post("/webhook")
|
|
async def stripe_webhook(request: Request):
|
|
await stripe_service.handle_webhook(request)
|
|
return "OK" |