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

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 

10 

11 

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 )