mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
I've gone over all the Transporters adn changed all 'text' fields for token, keys and passwords to 'password' so the no longer show up as clear text in the GUI
51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* LINE Notify Transport
|
|
*/
|
|
|
|
namespace LibreNMS\Alert\Transport;
|
|
|
|
use LibreNMS\Alert\Transport;
|
|
use LibreNMS\Exceptions\AlertTransportDeliveryException;
|
|
use LibreNMS\Util\Http;
|
|
|
|
class Linenotify extends Transport
|
|
{
|
|
protected string $name = 'LINE Notify';
|
|
|
|
public function deliverAlert(array $alert_data): bool
|
|
{
|
|
// TODO possible to attach graph images
|
|
$lineUrl = 'https://notify-api.line.me/api/notify';
|
|
$lineFields = ['message' => $alert_data['msg']];
|
|
|
|
$res = Http::client()
|
|
->withToken($this->config['line-notify-access-token'])
|
|
->asForm()
|
|
->post($lineUrl, $lineFields);
|
|
|
|
if ($res->successful()) {
|
|
return true;
|
|
}
|
|
|
|
throw new AlertTransportDeliveryException($alert_data, $res->status(), $res->body(), $alert_data['msg'], $lineFields);
|
|
}
|
|
|
|
public static function configTemplate(): array
|
|
{
|
|
return [
|
|
'config' => [
|
|
[
|
|
'title' => 'Token',
|
|
'name' => 'line-notify-access-token',
|
|
'descr' => 'LINE Notify Token',
|
|
'type' => 'password',
|
|
],
|
|
],
|
|
'validation' => [
|
|
'line-notify-access-token' => 'required|string',
|
|
],
|
|
];
|
|
}
|
|
}
|