KONTOLODON
/
var
/
www
/
ojs-3.3.0-13
/
lib
/
pkp
/
lib
/
vendor
/
monolog
/
monolog
/
src
/
Monolog
/
Handler
/
Nama File / Folder
Size
Action
Curl
--
NONE
FingersCrossed
--
NONE
Slack
--
NONE
SyslogUdp
--
NONE
AbstractProcessingHandler.php
1.399KB
Hapus
Edit
Rename
AbstractSyslogHandler.php
3.5KB
Hapus
Edit
Rename
AmqpHandler.php
3.943KB
Hapus
Edit
Rename
BrowserConsoleHandler.php
7.443KB
Hapus
Edit
Rename
ChromePHPHandler.php
5.129KB
Hapus
Edit
Rename
DeduplicationHandler.php
5.562KB
Hapus
Edit
Rename
DoctrineCouchDBHandler.php
1.072KB
Hapus
Edit
Rename
ElasticsearchHandler.php
5.342KB
Hapus
Edit
Rename
FallbackGroupHandler.php
1.353KB
Hapus
Edit
Rename
FilterHandler.php
5.798KB
Hapus
Edit
Rename
FingersCrossedHandler.php
7.535KB
Hapus
Edit
Rename
FlowdockHandler.php
3.178KB
Hapus
Edit
Rename
FormattableHandlerInterface.php
0.825KB
Hapus
Edit
Rename
FormattableHandlerTrait.php
1.251KB
Hapus
Edit
Rename
IFTTTHandler.php
2.144KB
Hapus
Edit
Rename
LogglyHandler.php
4.141KB
Hapus
Edit
Rename
MandrillHandler.php
2.637KB
Hapus
Edit
Rename
MissingExtensionException.php
0.462KB
Hapus
Edit
Rename
NativeMailerHandler.php
5.044KB
Hapus
Edit
Rename
NoopHandler.php
0.859KB
Hapus
Edit
Rename
ProcessableHandlerInterface.php
1.053KB
Hapus
Edit
Rename
ProcessableHandlerTrait.php
1.459KB
Hapus
Edit
Rename
RedisHandler.php
2.935KB
Hapus
Edit
Rename
RollbarHandler.php
3.467KB
Hapus
Edit
Rename
RotatingFileHandler.php
6.04KB
Hapus
Edit
Rename
SlackWebhookHandler.php
3.935KB
Hapus
Edit
Rename
WebRequestRecognizerTrait.php
0.512KB
Hapus
Edit
Rename
WhatFailureGroupHandler.php
1.497KB
Hapus
Edit
Rename
<?php declare(strict_types=1); /* * This file is part of the Monolog package. * * (c) Jordi Boggiano <j.boggiano@seld.be> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Monolog\Handler; use Monolog\Logger; use Monolog\Utils; use Monolog\Formatter\FlowdockFormatter; use Monolog\Formatter\FormatterInterface; /** * Sends notifications through the Flowdock push API * * This must be configured with a FlowdockFormatter instance via setFormatter() * * Notes: * API token - Flowdock API token * * @author Dominik Liebler <liebler.dominik@gmail.com> * @see https://www.flowdock.com/api/push */ class FlowdockHandler extends SocketHandler { /** * @var string */ protected $apiToken; /** * @param string|int $level The minimum logging level at which this handler will be triggered * @param bool $bubble Whether the messages that are handled can bubble up the stack or not * * @throws MissingExtensionException if OpenSSL is missing */ public function __construct(string $apiToken, $level = Logger::DEBUG, bool $bubble = true) { if (!extension_loaded('openssl')) { throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler'); } parent::__construct('ssl://api.flowdock.com:443', $level, $bubble); $this->apiToken = $apiToken; } /** * {@inheritdoc} */ public function setFormatter(FormatterInterface $formatter): HandlerInterface { if (!$formatter instanceof FlowdockFormatter) { throw new \InvalidArgumentException('The FlowdockHandler requires an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); } return parent::setFormatter($formatter); } /** * Gets the default formatter. */ protected function getDefaultFormatter(): FormatterInterface { throw new \InvalidArgumentException('The FlowdockHandler must be configured (via setFormatter) with an instance of Monolog\Formatter\FlowdockFormatter to function correctly'); } /** * {@inheritdoc} * * @param array $record */ protected function write(array $record): void { parent::write($record); $this->closeSocket(); } /** * {@inheritdoc} */ protected function generateDataStream(array $record): string { $content = $this->buildContent($record); return $this->buildHeader($content) . $content; } /** * Builds the body of API call */ private function buildContent(array $record): string { return Utils::jsonEncode($record['formatted']['flowdock']); } /** * Builds the header of the API Call */ private function buildHeader(string $content): string { $header = "POST /v1/messages/team_inbox/" . $this->apiToken . " HTTP/1.1\r\n"; $header .= "Host: api.flowdock.com\r\n"; $header .= "Content-Type: application/json\r\n"; $header .= "Content-Length: " . strlen($content) . "\r\n"; $header .= "\r\n"; return $header; } }