Skip to content

Commit

Permalink
Update test-app's event following new Client
Browse files Browse the repository at this point in the history
  • Loading branch information
o0h committed Nov 4, 2019
1 parent ec746d6 commit 3aafabd
Showing 1 changed file with 40 additions and 22 deletions.
62 changes: 40 additions & 22 deletions tests/test_app/app/src/Error/Event/SentryErrorContext.php
Expand Up @@ -5,40 +5,58 @@
use Cake\Event\Event;
use Cake\Event\EventListenerInterface;
use Cake\Http\ServerRequest;
use Raven_Client;

use Cake\Http\ServerRequestFactory;
use Connehito\CakeSentry\Http\Client;
use Sentry\State\Scope;
use function Sentry\configureScope as sentryConfigureScope;

class SentryErrorContext implements EventListenerInterface
{
public function implementedEvents()
{
return [
'CakeSentry.Client.afterSetup' => 'setServerContext',
'CakeSentry.Client.beforeCapture' => 'setContext',
'CakeSentry.Client.afterCapture' => 'callbackAfterCapture(',
];
}

public function setServerContext(Event $event)
{
/** @var Client $subject */
$subject = $event->getSubject();
$options = $subject->getHub()->getClient()->getOptions();

$options->setEnvironment('test_app');
$options->setRelease('2.0.0@dev');
}

public function setContext(Event $event)
{
/** @var ServerRequest $request */
$request = $event->getSubject()->getRequest();
$request->trustProxy = true;
/** @var Raven_Client $raven */
$raven = $event->getSubject()->getRaven();
$raven->user_context([
'ip_address' => $request->clientIp()
]);
$raven->tags_context([
'app_version' => $request->getHeaderLine('App-Version') ?: 1.0,
'status' => $event->getData('exception')->getCode(),
]);

$raven->setEnvironment('test_app');
if (PHP_SAPI !== 'cli') {
/** @var ServerRequest $request */
$request = $event->getData('request') ?? ServerRequestFactory::fromGlobals();
$request->trustProxy = true;

return [
'extra' => [
'foo' => 'bar',
'request attributes' => $request->getAttributes(),
]
];
sentryConfigureScope(function (Scope $scope) use ($request, $event) {
$scope->setTag('app_version', $request->getHeaderLine('App-Version') ?: 1.0);
$exception = $event->getData('exception');
if ($exception) {
assert($exception instanceof \Exception);
$scope->setTag('status', $exception->getCode());
}
$scope->setUser(['ip_address' => $request->clientIp()]);
$scope->setExtras([
'foo' => 'bar',
'request attributes' => $request->getAttributes(),
]);
});
}
}

public function callbackAfterCapture(Event $event)
{
$lastEventId = $event->getData('lastEventId');
// do nothing.
}
}

0 comments on commit 3aafabd

Please sign in to comment.