feat: webhook CRUD API + schemas
This commit is contained in:
43
app/schemas/webhook.py
Normal file
43
app/schemas/webhook.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class WebhookCreate(BaseModel):
|
||||
url: str
|
||||
secret: Optional[str] = None
|
||||
events: str # comma-separated: "issue.created,issue.updated"
|
||||
project_id: Optional[int] = None
|
||||
is_active: bool = True
|
||||
|
||||
|
||||
class WebhookUpdate(BaseModel):
|
||||
url: Optional[str] = None
|
||||
secret: Optional[str] = None
|
||||
events: Optional[str] = None
|
||||
is_active: Optional[bool] = None
|
||||
|
||||
|
||||
class WebhookResponse(BaseModel):
|
||||
id: int
|
||||
url: str
|
||||
events: str
|
||||
project_id: Optional[int]
|
||||
is_active: bool
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class WebhookLogResponse(BaseModel):
|
||||
id: int
|
||||
webhook_id: int
|
||||
event: str
|
||||
payload: str
|
||||
response_status: Optional[int]
|
||||
success: bool
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
Reference in New Issue
Block a user