feat(fastapi): adds mock endpoints for webhook events

This commit is contained in:
sauravniraula 2025-09-16 17:33:34 +05:45
parent c6ca4fe8a7
commit 8ba149c6f0
No known key found for this signature in database
GPG key ID: 60FCC1B5A5E83326
3 changed files with 49 additions and 0 deletions

View file

@ -2,6 +2,7 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from api.lifespan import app_lifespan
from api.middlewares import UserConfigEnvUpdateMiddleware
from api.v1.mock.router import API_V1_MOCK_ROUTER
from api.v1.ppt.router import API_V1_PPT_ROUTER
@ -10,6 +11,7 @@ app = FastAPI(lifespan=app_lifespan)
# Routers
app.include_router(API_V1_PPT_ROUTER)
app.include_router(API_V1_MOCK_ROUTER)
# Middlewares
origins = ["*"]

View file

@ -0,0 +1,34 @@
import uuid
from fastapi import APIRouter
from models.api_error_model import APIErrorModel
from models.presentation_and_path import PresentationPathAndEditPath
from typing import List
API_V1_MOCK_ROUTER = APIRouter(prefix="/api/v1/mock", tags=["Mock"])
@API_V1_MOCK_ROUTER.get(
"/presentation-generation-completed",
response_model=List[PresentationPathAndEditPath],
)
async def mock_presentation_generation_completed():
return [
PresentationPathAndEditPath(
presentation_id=uuid.uuid4(),
path="/app_data/exports/test.pdf",
edit_path="/presentation?id=123",
)
]
@API_V1_MOCK_ROUTER.get(
"/presentation-generation-failed",
response_model=List[APIErrorModel],
)
async def mock_presentation_generation_completed():
return [
APIErrorModel(
status_code=500,
detail="Presentation generation failed",
)
]

View file

@ -0,0 +1,13 @@
from fastapi import HTTPException
from pydantic import BaseModel
class APIErrorModel(BaseModel):
status_code: int
detail: str
@classmethod
def from_exception(cls, e: Exception) -> "APIErrorModel":
if isinstance(e, HTTPException):
return APIErrorModel(status_code=e.status_code, detail=e.detail)
return APIErrorModel(status_code=500, detail=str(e))