health-apps-cms/apis/endpoints/stripe.py

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"