mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-12-23 19:11:14 +01:00
cffc431bf0
* POC: Added FastAPI with one endpoint (get /logs/service) * POC: Revert error_log * POC: Converted preview related endpoints to FastAPI * POC: Converted two more endpoints to FastAPI * POC: lint * Convert all media endpoints to FastAPI. Added /media prefix (/media/camera && media/events && /media/preview) * Convert all notifications API endpoints to FastAPI * Convert first review API endpoints to FastAPI * Convert remaining review API endpoints to FastAPI * Convert export endpoints to FastAPI * Fix path parameters * Convert events endpoints to FastAPI * Use body for multiple events endpoints * Use body for multiple events endpoints (create and end event) * Convert app endpoints to FastAPI * Convert app endpoints to FastAPI * Convert auth endpoints to FastAPI * Removed flask app in favour of FastAPI app. Implemented FastAPI middleware to check CSRF, connect and disconnect from DB. Added middleware x-forwared-for headers * Added starlette plugin to expose custom headers * Use slowapi as the limiter * Use query parameters for the frame latest endpoint * Use query parameters for the media snapshot.jpg endpoint * Use query parameters for the media MJPEG feed endpoint * Revert initial nginx.conf change * Added missing even_id for /events/search endpoint * Removed left over comment * Use FastAPI TestClient * severity query parameter should be a string * Use the same pattern for all tests * Fix endpoint * Revert media routers to old names. Order routes to make sure the dynamic ones from media.py are only used whenever there's no match on auth/etc * Reverted paths for media on tsx files * Deleted file * Fix test_http to use TestClient * Formatting * Bind timeline to DB * Fix http tests * Replace filename with pathvalidate * Fix latest.ext handling and disable uvicorn access logs * Add cosntraints to api provided values * Formatting * Remove unused * Remove unused * Get rate limiter working --------- Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
31 lines
810 B
Python
31 lines
810 B
Python
from datetime import datetime
|
|
from typing import Optional, Union
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class EventsSubLabelBody(BaseModel):
|
|
subLabel: str = Field(title="Sub label", max_length=100)
|
|
subLabelScore: Optional[float] = Field(
|
|
title="Score for sub label", default=None, gt=0.0, le=1.0
|
|
)
|
|
|
|
|
|
class EventsDescriptionBody(BaseModel):
|
|
description: Union[str, None] = Field(
|
|
title="The description of the event", min_length=1
|
|
)
|
|
|
|
|
|
class EventsCreateBody(BaseModel):
|
|
source_type: Optional[str] = "api"
|
|
sub_label: Optional[str] = None
|
|
score: Optional[int] = 0
|
|
duration: Optional[int] = 30
|
|
include_recording: Optional[bool] = True
|
|
draw: Optional[dict] = {}
|
|
|
|
|
|
class EventsEndBody(BaseModel):
|
|
end_time: Optional[int] = datetime.now().timestamp()
|