47 lines
1.8 KiB
Python
47 lines
1.8 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("/create-stripe-account-link", dependencies=[Depends(auth_required)])
|
|
async def create_stripe_account_link(req:Request):
|
|
link = await stripe_service.create_stripe_account_link(req.state.user)
|
|
return ApiResponse(data=link, message="Stripe account link created successfully")
|
|
|
|
@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" |