You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
997 B
31 lines
997 B
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]
|