Initial setup for Teams & Discord

This commit is contained in:
Davidson Francis 2024-07-28 14:39:02 -03:00
parent 11079f41c1
commit 34963499c3

View File

@ -212,9 +212,9 @@ static int send_generic_webhook(const char *url, const char *text)
} }
//////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
//////////////////////////////// TELEGRAM ////////////////////////////////////// //////////////////////////////// TELEGRAM /////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
/* Telegram & request settings. */ /* Telegram & request settings. */
static char *telegram_bot_token; static char *telegram_bot_token;
@ -271,9 +271,9 @@ static int send_telegram_notification(const char *msg)
return do_curl(hnd, escaped_msg, NULL); return do_curl(hnd, escaped_msg, NULL);
} }
//////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
////////////////////////////////// SLACK /////////////////////////////////////// ////////////////////////////////// SLACK //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
/* Slack settings. */ /* Slack settings. */
static char *slack_webhook_url; static char *slack_webhook_url;
@ -296,12 +296,66 @@ static int send_slack_notification(const char *msg) {
return send_generic_webhook(slack_webhook_url, msg); return send_generic_webhook(slack_webhook_url, msg);
} }
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////// TEAMS //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/* Teams settings. */
static char *teams_webhook_url;
void setup_teams(void)
{
static int setup = 0;
if (setup)
return;
teams_webhook_url = getenv("TEAMS_WEBHOOK_URL");
if (!teams_webhook_url) {
panic("Unable to find env vars for Teams, please check if you have set "
"the TEAMS_WEBHOOK_URL!!\n");
}
setup = 1;
}
static int send_teams_notification(const char *msg) {
return send_generic_webhook(teams_webhook_url, msg);
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// DISCORD /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/* Discord settings. */
static char *discord_webhook_url;
void setup_discord(void)
{
static int setup = 0;
if (setup)
return;
discord_webhook_url = getenv("DISCORD_WEBHOOK_URL");
if (!discord_webhook_url) {
panic("Unable to find env vars for Discord, please check if you have set "
"the DISCORD_WEBHOOK_URL!!\n");
}
setup = 1;
}
/* Discord in Slack-compatible mode. */
static int send_discord_notification(const char *msg) {
struct str_ab url;
ab_init(&url);
if (ab_append_fmt("%s/slack", discord_webhook_url) < 0)
return 1;
return send_generic_webhook(url.buff, msg);
}
////////////////////////////////// END //////////////////////////////////////// ////////////////////////////////// END ////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
const char *const notifiers_str[] = { const char *const notifiers_str[] = {
"Telegram", "Slack", "Discord", "Teams", "Telegram", "Slack", "Teams", "Discord",
"Generic1", "Generic2", "Generic3", "Generic4" "Generic1", "Generic2", "Generic3", "Generic4"
}; };
@ -315,5 +369,15 @@ struct notifier notifiers[] = {
{ {
.setup = setup_slack, .setup = setup_slack,
.send_notification = send_slack_notification .send_notification = send_slack_notification
},
/* Teams. */
{
.setup = setup_teams,
.send_notification = send_teams_notification
},
/* Discord. */
{
.setup = setup_discord,
.send_notification = send_discord_notification
} }
}; };