Merge pull request #294 from presenton/feat/mock-endpoints

feat(fastapi): adds mock endpoints for webhook events
This commit is contained in:
Saurav Niraula 2025-09-16 17:36:17 +05:45 committed by GitHub
commit 10d23a779d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 49 additions and 0 deletions

View file

@ -4,6 +4,7 @@ from api.lifespan import app_lifespan
from api.middlewares import UserConfigEnvUpdateMiddleware
from api.v1.ppt.router import API_V1_PPT_ROUTER
from api.v1.webhook.router import API_V1_WEBHOOK_ROUTER
from api.v1.mock.router import API_V1_MOCK_ROUTER
app = FastAPI(lifespan=app_lifespan)
@ -12,6 +13,7 @@ app = FastAPI(lifespan=app_lifespan)
# Routers
app.include_router(API_V1_PPT_ROUTER)
app.include_router(API_V1_WEBHOOK_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))