from fastapi import FastAPI from fastapi.responses import HTMLResponse from fastapi.requests import Request from fastapi import Query from pymongo.asynchronous.database import AsyncDatabase from extra.MessageDTO import MessageDTO from typing import List, Annotated class WebExtension: app: FastAPI dbStore: AsyncDatabase def __init__(self, core): self.core = core self.app = core.app self.dbService = core.dbService @self.app.get(f"{self.core.context}/messages") @self.core.authManager.authRequest() async def listOfMessages( request: Request, limit: int = Query(10), offset: int = Query(0), after: float = Query(0), before: float = Query(0), devices: List[str] = Query([]) ): l = await self.dbService.listOfMessage( limit, offset, after, before, devices ) return [MessageDTO(msg) for msg in l]