From 60f030abf74e28a90c67625dff0070f7212fcd49 Mon Sep 17 00:00:00 2001 From: sauravniraula Date: Tue, 16 Sep 2025 18:06:59 +0545 Subject: [PATCH] chore(fastapi): refactor webhook id to use different format --- servers/fastapi/api/v1/webhook/router.py | 5 ++--- servers/fastapi/models/sql/webhook_subscription.py | 5 ++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/servers/fastapi/api/v1/webhook/router.py b/servers/fastapi/api/v1/webhook/router.py index 44b5b635..4b85fc4d 100644 --- a/servers/fastapi/api/v1/webhook/router.py +++ b/servers/fastapi/api/v1/webhook/router.py @@ -1,5 +1,4 @@ from typing import Optional -import uuid from fastapi import APIRouter, Body, Depends, HTTPException, Path from pydantic import BaseModel, Field from sqlalchemy.ext.asyncio import AsyncSession @@ -18,7 +17,7 @@ class SubscribeToWebhookRequest(BaseModel): class SubscribeToWebhookResponse(BaseModel): - id: uuid.UUID + id: str @API_V1_WEBHOOK_ROUTER.post( @@ -40,7 +39,7 @@ async def subscribe_to_webhook( @API_V1_WEBHOOK_ROUTER.delete("/unsubscribe", status_code=204) async def unsubscribe_to_webhook( - id: uuid.UUID = Body( + id: str = Body( embed=True, description="The ID of the webhook subscription to unsubscribe from" ), sql_session: AsyncSession = Depends(get_async_session), diff --git a/servers/fastapi/models/sql/webhook_subscription.py b/servers/fastapi/models/sql/webhook_subscription.py index 530a1ad8..7dfe0753 100644 --- a/servers/fastapi/models/sql/webhook_subscription.py +++ b/servers/fastapi/models/sql/webhook_subscription.py @@ -1,3 +1,4 @@ +import secrets from typing import Optional import uuid from datetime import datetime @@ -9,7 +10,9 @@ from utils.datetime_utils import get_current_utc_datetime class WebhookSubscription(SQLModel, table=True): __tablename__ = "webhook_subscriptions" - id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) + id: str = Field( + default_factory=lambda: f"webhook-{secrets.token_hex(32)}", primary_key=True + ) created_at: datetime = Field( sa_column=Column(DateTime(timezone=True), nullable=False), default_factory=get_current_utc_datetime,