39 lines
1.0 KiB
Python
Executable File
39 lines
1.0 KiB
Python
Executable File
from fastapi import APIRouter, Depends
|
|
import logging as log
|
|
|
|
from schemas import (
|
|
zbxMessageToDashboard,
|
|
)
|
|
from auth import verify_token_zabbix
|
|
from redis_db import set_value, pop_value
|
|
from telegram import send_message
|
|
from telegram import del_message
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/send-to-dashboard")
|
|
async def send_message_to_dashboard(
|
|
data: zbxMessageToDashboard,
|
|
token: str = Depends(verify_token_zabbix),
|
|
):
|
|
if data.event_value == 0:
|
|
msg_id = await pop_value(data.event_id)
|
|
if msg_id:
|
|
msg_id = int(msg_id.decode("utf-8"))
|
|
await del_message(
|
|
message_id=msg_id,
|
|
chat_id=data.tg_chat_id,
|
|
tg_token=data.tg_token,
|
|
)
|
|
return
|
|
|
|
result = await send_message(
|
|
message=data.message,
|
|
chat_id=data.tg_chat_id,
|
|
message_thread_id=data.tg_tread_id,
|
|
tg_token=data.tg_token,
|
|
)
|
|
if result and result["status"] == 200:
|
|
await set_value(data.event_id, result["msg_id"])
|