58 lines
1.7 KiB
PHP
58 lines
1.7 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
namespace NeotelApply;
|
|
|
|
use IrisHelpers\CurlHelpers;
|
|
use Serhiy\Pushover;
|
|
use Serhiy\Pushover\Api\Message\Message as PushoverMessage;
|
|
use Serhiy\Pushover\Api\Message\Notification as PushoverNotification;
|
|
|
|
final class ApplicationAlerters {
|
|
/**
|
|
* @param string[] $key Hook key (unused)
|
|
* @param mixed[] $params Array of [user, tilde, message]
|
|
* @return mixed[] Array of [user, tilde, message]
|
|
*/
|
|
public static function pushover(array $key, array $params): array {
|
|
list($user, $tilde, $message) = $params;
|
|
|
|
$application = new Pushover\Application($_ENV[IX_ENVBASE . '_PUSHOVER_API_TOKEN']);
|
|
$pushovermessage = new PushoverMessage(
|
|
"from {$user}@{$tilde}\n> {$message}",
|
|
'new neotel application',
|
|
);
|
|
|
|
$pushoverusers = explode(',', $_ENV[IX_ENVBASE . '_PUSHOVER_USER_KEYS']);
|
|
foreach ($pushoverusers as $userkey) {
|
|
$recipient = new Pushover\Recipient($userkey);
|
|
$notification = new PushoverNotification($application, $recipient, $pushovermessage);
|
|
$response = $notification->push();
|
|
}
|
|
|
|
return [$user, $tilde, $message];
|
|
}
|
|
|
|
/**
|
|
* @param string[] $key Hook key (unused)
|
|
* @param mixed[] $params Array of [user, tilde, message]
|
|
* @return mixed[] Array of [user, tilde, message]
|
|
*/
|
|
public static function discord(array $key, array $params): array {
|
|
list($user, $tilde, $message) = $params;
|
|
|
|
$data = json_encode([
|
|
"content" => "From `{$user}@{$tilde}` \n> {$message}",
|
|
]);
|
|
|
|
$curl_opts = [
|
|
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
|
|
CURLOPT_POST => 1,
|
|
CURLOPT_POSTFIELDS => $data,
|
|
];
|
|
|
|
$response = CurlHelpers::fetchUrl($_ENV[IX_ENVBASE . "_DISCORD_WEBHOOK_URL"], $curl_opts, true);
|
|
|
|
return [$user, $tilde, $message];
|
|
}
|
|
}
|