Skip to content

Commit 6bf4161

Browse files
committed
revise plugin to use logger interface
1 parent 75a2cf5 commit 6bf4161

File tree

4 files changed

+26
-25
lines changed

4 files changed

+26
-25
lines changed
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
<?php
22

3-
namespace Graycore\GraphQlLogger\Plugin;
3+
namespace Graycore\GraphQlLogger\Logger;
4+
5+
use Graycore\GraphQlLogger\Model\Config;
6+
use Magento\GraphQl\Model\Query\Logger\LoggerInterface;
47

58
use Graycore\GraphQlLogger\Api\LogRepositoryInterface;
69
use Graycore\GraphQlLogger\Api\Data\LogInterfaceFactory as LogFactory;
7-
use Graycore\GraphQlLogger\Model\Config;
810
use Magento\Framework\App\RequestInterface;
911
use Magento\Framework\Exception\NoSuchEntityException;
10-
use Magento\Framework\GraphQl\Query\QueryProcessor;
11-
use Magento\Framework\GraphQl\Schema;
1212
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
1313

14-
class LoggerPlugin
14+
class Logger implements LoggerInterface
1515
{
1616
private LogRepositoryInterface $logRepository;
1717
private LogFactory $logFactory;
1818
private RequestInterface $request;
1919
private TimezoneInterface $date;
2020
private Config $config;
2121

22+
/**
23+
* @param Config $config
24+
*/
2225
public function __construct(
2326
RequestInterface $request,
2427
LogRepositoryInterface $logRepository,
@@ -33,17 +36,16 @@ public function __construct(
3336
$this->config = $config;
3437
}
3538

36-
public function afterProcess(
37-
QueryProcessor $queryProcessor,
38-
array $value,
39-
Schema $schema,
40-
string $source
41-
): array {
39+
/**
40+
* @inheritdoc
41+
*/
42+
public function execute(array $queryDetails)
43+
{
4244
if (!$this->config->isEnabled()) {
43-
return $value;
45+
return;
4446
}
4547

46-
$hash = hash('sha256', $source);
48+
$hash = hash('sha256', $queryDetails['query']);
4749

4850
try {
4951
$log = $this->logRepository->getByHash($hash);
@@ -53,10 +55,8 @@ public function afterProcess(
5355

5456
$log->setHash($hash)
5557
->setMethod($this->request->getMethod())
56-
->setQuery($source)
58+
->setQuery($queryDetails['query'])
5759
->setUpdated($this->date->date()->format('Y-m-d H:i:s'));
5860
$this->logRepository->save($log);
59-
60-
return $value;
6161
}
6262
}

composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,16 @@
3232
"repositories": [
3333
{
3434
"type": "composer",
35-
"url": "https://repo.magento.com/"
35+
"url": "https://mirror.mage-os.org/"
3636
}
3737
],
3838
"config": {
3939
"preferred-install": "dist",
4040
"sort-packages": true,
4141
"allow-plugins": {
4242
"magento/composer-dependency-version-audit-plugin": true,
43-
"magento/magento-composer-installer": false
43+
"magento/magento-composer-installer": false,
44+
"dealerdirect/phpcodesniffer-composer-installer": true
4445
}
4546
}
4647
}

etc/di.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,11 @@
33
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
44
<preference for="Graycore\GraphQlLogger\Api\LogRepositoryInterface" type="Graycore\GraphQlLogger\Model\LogRepository"/>
55
<preference for="Graycore\GraphQlLogger\Api\Data\LogInterface" type="Graycore\GraphQlLogger\Model\Log"/>
6+
<type name="Magento\GraphQl\Model\Query\Logger\LoggerPool">
7+
<arguments>
8+
<argument name="loggers" xsi:type="array">
9+
<item name="graycoreGraphqlLogger" xsi:type="object">Graycore\GraphQlLogger\Logger\Logger</item>
10+
</argument>
11+
</arguments>
12+
</type>
613
</config>

etc/graphql/di.xml

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)