feat(fastapi): adds mock endpoints for webhook events
This commit is contained in:
parent
c6ca4fe8a7
commit
8ba149c6f0
3 changed files with 49 additions and 0 deletions
|
|
@ -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 = ["*"]
|
||||
|
|
|
|||
34
servers/fastapi/api/v1/mock/router.py
Normal file
34
servers/fastapi/api/v1/mock/router.py
Normal 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",
|
||||
)
|
||||
]
|
||||
13
servers/fastapi/models/api_error_model.py
Normal file
13
servers/fastapi/models/api_error_model.py
Normal 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))
|
||||
Loading…
Add table
Reference in a new issue