Skip to content

Commit

Permalink
✨ add logs to API controllers
Browse files Browse the repository at this point in the history
  • Loading branch information
Nek- committed Oct 12, 2024
1 parent fe327a5 commit 1c2e1fc
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 6 deletions.
2 changes: 2 additions & 0 deletions lib/amphp/http-server-router/src/Router.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ public function handleRequest(Request $request): Response
$method = $request->getMethod();
$path = $request->getUri()->getPath();

$this->logger->debug('[Router] Matching path: "' . $path . '" with method '.$method);

$toMatch = "{$method}\0{$path}";

if (null === $match = $this->cache->get($toMatch)) {
Expand Down
13 changes: 9 additions & 4 deletions src/Controller/Subscription/GetSubscriptionController.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
use Amp\Http\Server\RequestHandler;
use Amp\Http\Server\Response;
use Amp\Http\Server\Router;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use SwagIndustries\MercureRouter\Controller\NotFoundController;
use SwagIndustries\MercureRouter\Mercure\Hub;
use SwagIndustries\MercureRouter\Security\Security;
Expand All @@ -24,10 +26,15 @@ class GetSubscriptionController implements RequestHandler
{
use SubscriptionNormalizerTrait;
use SubscriptionApiResponseTrait;
public function __construct(private Hub $mercure, private NotFoundController $notFound) {}
public function __construct(
private Hub $mercure,
private NotFoundController $notFound,
private LoggerInterface $logger = new NullLogger()
) {}
public function handleRequest(Request $request): Response
{
['topic' => $topicQuery, 'subscriber' => $subscriberId] = $request->getAttribute(Router::class);
$this->logger->debug('[API] Get subscriptions for topic "' . $topicQuery . '" and subscriber "' . $subscriberId . '"');

/** @var array{subscribe: array|string|null, payload?: array} $jwtContent */
$jwtContent = $request->getAttribute(Security::ATTRIBUTE_JWT_PAYLOAD)['mercure'] ?? [];
Expand All @@ -36,9 +43,7 @@ public function handleRequest(Request $request): Response
$validPaths = [
Hub::MERCURE_PATH . '/subscriptions{/topic}{/subscriber}',
];
dump($allowedTopics);
dump($validPaths);
dump(array_intersect($validPaths, $allowedTopics));

if (empty(array_intersect($validPaths, $allowedTopics))) {
return $this->forbiddenApiResponse();
}
Expand Down
9 changes: 8 additions & 1 deletion src/Controller/Subscription/GetSubscriptionsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
use Amp\Http\Server\Request;
use Amp\Http\Server\RequestHandler;
use Amp\Http\Server\Response;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use SwagIndustries\MercureRouter\Controller\NotFoundController;
use SwagIndustries\MercureRouter\Mercure\Hub;
use SwagIndustries\MercureRouter\Security\Security;
Expand All @@ -23,9 +25,14 @@ class GetSubscriptionsController implements RequestHandler
{
use SubscriptionNormalizerTrait;
use SubscriptionApiResponseTrait;
public function __construct(private Hub $mercure, private NotFoundController $notFound) {}
public function __construct(
private Hub $mercure,
private NotFoundController $notFound,
private LoggerInterface $logger = new NullLogger()
) {}
public function handleRequest(Request $request): Response
{
$this->logger->debug('[API] Get all subscriptions');
/** @var array{subscribe: array|string|null, payload?: array} $jwtContent */
$jwtContent = $request->getAttribute(Security::ATTRIBUTE_JWT_PAYLOAD)['mercure'] ?? [];
$allowedTopics = (array) ($jwtContent['subscribe'] ?? []);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
use Amp\Http\Server\RequestHandler;
use Amp\Http\Server\Response;
use Amp\Http\Server\Router;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use SwagIndustries\MercureRouter\Controller\NotFoundController;
use SwagIndustries\MercureRouter\Mercure\Hub;
use SwagIndustries\MercureRouter\Security\Security;
Expand All @@ -24,10 +26,15 @@ class GetTopicSubscriptionsController implements RequestHandler
{
use SubscriptionNormalizerTrait;
use SubscriptionApiResponseTrait;
public function __construct(private Hub $mercure, private NotFoundController $notFound) {}
public function __construct(
private Hub $mercure,
private NotFoundController $notFound,
private LoggerInterface $logger = new NullLogger()
) {}
public function handleRequest(Request $request): Response
{
['topic' => $topicQuery] = $request->getAttribute(Router::class);
$this->logger->debug('[API] Get topic subscriptions for topic "' . $topicQuery . '"');

/** @var array{subscribe: array|string|null, payload?: array} $jwtContent */
$jwtContent = $request->getAttribute(Security::ATTRIBUTE_JWT_PAYLOAD)['mercure'] ?? [];
Expand Down

0 comments on commit 1c2e1fc

Please sign in to comment.