|
3 | 3 | import logging |
4 | 4 | import json |
5 | 5 |
|
6 | | - |
7 | 6 | logger: logging.Logger = logging.getLogger(__name__) |
8 | 7 |
|
9 | 8 |
|
10 | | -def send_mattermost_message(subject, message): |
11 | | - mattermost_webhook_url = CONFIG_MATTERMOST["mattermost_webhook"] |
12 | | - |
13 | | - payload = {"text": f"{message}"} |
14 | | - headers = {"Content-Type": "application/json"} |
| 9 | +def send_mattermost_message(message: str) -> bool: |
15 | 10 |
|
16 | 11 | try: |
17 | | - response = requests.post( |
18 | | - mattermost_webhook_url, |
| 12 | + base_url = CONFIG_MATTERMOST.get("base_url", "").rstrip("/") |
| 13 | + token = CONFIG_MATTERMOST.get("token") |
| 14 | + channel_id = CONFIG_MATTERMOST.get("channel_id") |
| 15 | + payload = {"channel_id": channel_id, "message": message} |
| 16 | + |
| 17 | + headers = { |
| 18 | + "Authorization": f"Bearer {token}", |
| 19 | + "Content-Type": "application/json", |
| 20 | + "Accept": "application/json", |
| 21 | + } |
| 22 | + |
| 23 | + url = f"{base_url}/api/v4/posts?set_online=false" |
| 24 | + resp = requests.post( |
| 25 | + url, |
19 | 26 | headers=headers, |
20 | 27 | data=json.dumps(payload), |
| 28 | + timeout=10, |
21 | 29 | ) |
22 | | - response.raise_for_status() |
23 | | - |
24 | | - except Exception as e: |
25 | | - logging.error(f"Failed to send email: {e}") |
26 | | - logging.exception(e) |
| 30 | + resp.raise_for_status() |
| 31 | + return True |
| 32 | + except requests.RequestException as e: |
| 33 | + # Mirror your previous logging style but correct the message |
| 34 | + logger.error(f"Failed to send Mattermost message: {e}") |
| 35 | + logger.exception(e) |
| 36 | + return False |
0 commit comments