Coverage for api/handlers/reports.py: 55%
11 statements
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
1import config
2from mongodb import reports_col, users_col
3from services.telegram import (
4 GROUP_TYPE,
5 async_send_message,
6 map_environment_header,
7)
8from sotrans_models.models.report import ReportCreateModel
9from sotrans_models.models.users import SotransOIDCUserModel
12async def process_report(
13 report: ReportCreateModel, user: SotransOIDCUserModel
14):
15 header = map_environment_header(GROUP_TYPE.ALERT)
16 file_links = (
17 ("\nLinks:\n" + "\n".join(report.file_links))
18 if report.file_links
19 else ""
20 )
21 report.submitter = await users_col.find_single("id", user.sub)
22 await reports_col.create(report.model_dump())
23 await async_send_message(
24 config.TelegramConfig.ALERT_CHAT_ID,
25 header + "\n" + (report.description or "") + "\n" + file_links,
26 )