Files
Tony MurrayandGitHub 04bb75f5f3 Alert transport cleanup, no_proxy support and other proxy cleanups (#14763)
* Add no_proxy and other proxy related settings
Set user agent on all http client requests
Unify http client usage

* Style fixes

* Remove useless use statements

* Correct variable, good job phpstan

* Add tests
fix https_proxy bug
add tcp:// to the config settings format

* style and lint fixes

* Remove guzzle from the direct dependencies

* Use built in Laravel testing functionality

* update baseline
2023-05-23 09:25:17 -05:00

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' => 'text',
],
],
'validation' => [
'line-notify-access-token' => 'required|string',
],
];
}
}