Desi-Clans/backend/app/api/routes/webhooks.py
2026-10-08 02:52:58 +05:30

31 lines
1 KiB
Python

from fastapi import APIRouter, Header, HTTPException, Request
from app.core.config import get_settings
from app.core.deps import DbSession
from app.services.payments.service import process_webhook
router = APIRouter(prefix="/webhooks", tags=["webhooks"])
@router.post("/razorpay")
async def razorpay_webhook(
request: Request,
db: DbSession,
x_razorpay_signature: str | None = Header(default=None, alias="X-Razorpay-Signature"),
) -> dict:
body = await request.body()
return process_webhook(db, body=body, signature=x_razorpay_signature)
@router.post("/mock")
async def mock_payment_webhook(
request: Request,
db: DbSession,
x_mock_signature: str | None = Header(default=None, alias="X-Mock-Signature"),
) -> dict:
"""Mock provider webhook (development / tests only)."""
settings = get_settings()
if settings.environment.lower() != "development":
raise HTTPException(status_code=404, detail="Not found")
body = await request.body()
return process_webhook(db, body=body, signature=x_mock_signature)