import os

import requests

slack_token = os.getenv("SLACK_TOKEN")

_slack_headers = {
    "Content-Type": "application/x-www-form-urlencoded",
}


def _make_data(channel, title, title_value, commiter_name):
    color = "#d0006b"
    data = f"""payload={{"channel": "#{channel}",
    "username": "DevOps Notifications\n",
    "text": ":zoom-p81:Pipeline Code Changes  <https://github.com/perimeter-81/actions/pulls  |  Click Here> \n\n Commiter: {commiter_name}\n\n",
    "icon_emoji": ":devops:", 
    "attachments":[{{ "color":"{color}", 
    "fields":[{{
    "title":"{title}",
    "value":"{title_value}",
    "short":false}}]}}]}}"""
    return data


def send_message(channel, title, title_value, commiter_name):
    data = _make_data(channel, title, title_value, commiter_name)
    response = requests.post(
        f"https://hooks.slack.com/services/T08TZ9AFP/BHE6WRLK1/{slack_token}", headers=_slack_headers, data=data
    )
    if response.status_code < 300:
        print(f"slack message return {response.status_code} status code")
        return True
    else:
        print(f"sending slack message to {channel} failed. return {response.status_code} with {response.text}")
        return False


if __name__ == "__main__":
    commiter_name = os.getenv("COMMITER", "github").strip()
    channel = str(os.getenv("CHANNEL", "shai_tests"))
    msg = os.getenv("MSG", "Action: Assume_role").strip()
    title = os.getenv("TITLE", "Changes in main action").strip()
    title_value = f"{msg} \nIn case a failures in actions please notice us!".strip()
    send_message(channel=channel, title=str(title), title_value=str(title_value), commiter_name=commiter_name)
