mirror of
https://github.com/Balshgit/mosgortrans.git
synced 2025-09-11 13:00:40 +03:00
33 lines
987 B
Python
33 lines
987 B
Python
import asyncio
|
|
from http import HTTPStatus
|
|
|
|
from aiogram.types import Update
|
|
from aiohttp import web
|
|
|
|
from app.core.bot import TransportBot
|
|
|
|
|
|
class Handler:
|
|
def __init__(self) -> None:
|
|
self.queue: asyncio.Queue = asyncio.Queue() # type: ignore
|
|
|
|
@staticmethod
|
|
async def health_check(request: web.Request) -> web.Response:
|
|
return web.Response(text='Health OK', status=HTTPStatus.OK)
|
|
|
|
async def put_updates_on_queue(self, request: web.Request) -> web.Response:
|
|
"""
|
|
Listen {WEBHOOK_PATH}/{TELEGRAM_WEB_TOKEN} path and proxy post request to bot
|
|
"""
|
|
data = await request.json()
|
|
tg_update = Update(**data)
|
|
self.queue.put_nowait(tg_update)
|
|
|
|
return web.Response(status=HTTPStatus.ACCEPTED)
|
|
|
|
async def get_updates_from_queue(self) -> None:
|
|
while True:
|
|
update = await self.queue.get()
|
|
await TransportBot.dispatcher.process_update(update)
|
|
await asyncio.sleep(0)
|