diff --git a/lolafect/slack.py b/lolafect/slack.py index 299adec..edf1dcc 100644 --- a/lolafect/slack.py +++ b/lolafect/slack.py @@ -1,2 +1,30 @@ -def say_hi(): - return "Slack says hi" \ No newline at end of file +import json + +from prefect.core import Task +from prefect.triggers import any_failed +import requests +class SendSlackMessageTask(Task): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def run(self, webhook_url:, text_to_send) -> None: + send_message_to_slack_channel(webhook_url, text_to_send) + + +def send_message_to_slack_channel(webhook_url, text_to_send): + + slack_data = {"text": text_to_send} + response = requests.post( + webhook_url, + data=json.dumps(slack_data), + headers={"Content-Type": "application/json"}, + ) + if response.status_code != 200: + raise ValueError( + "Request to slack returned an error %s, the response is:\n%s" + % (response.status_code, response.text) + ) + + +send_message_to_slack_channel_on_upstream_all_successful = SendSlackMessageTask() +send_error_warning_to_slack = SendSlackMessageTask(trigger=any_failed)