mirror of
https://github.com/azaion/gps-denied-desktop.git
synced 2026-04-22 22:16:36 +00:00
abc26d5c20
docs -> _docs
70 lines
1.6 KiB
Python
70 lines
1.6 KiB
Python
from abc import ABC, abstractmethod
|
|
from typing import AsyncIterator
|
|
from fastapi import UploadFile
|
|
|
|
from models.api import (
|
|
FlightCreateRequest,
|
|
FlightResponse,
|
|
FlightDetailResponse,
|
|
FlightStatusResponse,
|
|
DeleteResponse,
|
|
UpdateResponse,
|
|
BatchResponse,
|
|
UserFixRequest,
|
|
UserFixResponse,
|
|
ObjectGPSResponse,
|
|
)
|
|
from models.core import GPSPoint
|
|
|
|
|
|
class FlightAPIBase(ABC):
|
|
@abstractmethod
|
|
async def create_flight(self, request: FlightCreateRequest) -> FlightResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_flight(self, flight_id: str) -> FlightDetailResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_flight_status(self, flight_id: str) -> FlightStatusResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def delete_flight(self, flight_id: str) -> DeleteResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def update_waypoints(
|
|
self, flight_id: str, waypoints: list[GPSPoint]
|
|
) -> UpdateResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def upload_batch(
|
|
self,
|
|
flight_id: str,
|
|
files: list[UploadFile],
|
|
start_sequence: int,
|
|
end_sequence: int,
|
|
batch_number: int,
|
|
) -> BatchResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def submit_user_fix(
|
|
self, flight_id: str, request: UserFixRequest
|
|
) -> UserFixResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_object_gps(
|
|
self, flight_id: str, frame_id: int, pixel: tuple[float, float]
|
|
) -> ObjectGPSResponse:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def stream_events(self, flight_id: str) -> AsyncIterator[dict]:
|
|
pass
|
|
|