Skip to content

Commit 3bf2a33

Browse files
authored
Merge branch 'main' into main
2 parents 34ecccf + 014b5b1 commit 3bf2a33

9 files changed

Lines changed: 54 additions & 30 deletions

File tree

Model/Clean.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public function execute()
7171
$collection = $this->logCollectionFactory->create();
7272
$collection = $collection->addFieldToSelect(LogResourceModel::LOG_ID)
7373
->addFieldToFilter(LogResourceModel::CREATED_AT, ['lt' => $datetime])
74-
->setPageSize(2);
74+
->setPageSize(1000);
7575

7676
$pageCount = $collection->getLastPageNumber();
7777
$currentPage = 1;

Model/Config.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ class Config
1818
*/
1919
protected const WEBAPI_LOGS_IS_ENABLED_CONFIG_PATH = 'webapi_logs/log/enabled';
2020

21+
22+
protected const WEBAPI_LOGS_DISABLED_AJAX_CALLS = 'webapi_logs/log/disable_ajax_calls';
2123
/**
2224
* string
2325
*/
@@ -63,6 +65,15 @@ public function isEnabled(): bool
6365
);
6466
}
6567

68+
public function isAjaxCallsDisabled(): bool
69+
{
70+
return $this->scopeConfig->isSetFlag(
71+
self::WEBAPI_LOGS_DISABLED_AJAX_CALLS,
72+
ScopeInterface::SCOPE_WEBSITE
73+
);
74+
}
75+
76+
6677
/**
6778
* @return bool
6879
*/

Model/LogHandle.php

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -78,31 +78,26 @@ public function before(
7878
string $requestBody,
7979
string $requestDateTime
8080
) {
81-
try {
82-
if ($this->config->isSecretMode()) {
83-
$requestorIp = $this->secretParser->parseIp();
84-
$requestHeaders = $this->secretParser->parseHeades($requestHeaders);
85-
$requestBody = $this->secretParser->parseBody($requestBody);
86-
}
87-
88-
$filter = $this->config->getFilterRequestPaths();
89-
90-
// Only log this request if the path is not filtered.
91-
if (!$this->filterRequestPath($requestPath, $filter)) {
92-
$log = $this->logFactory->create();
93-
$log->setData([
94-
'request_method' => $requestMethod,
95-
'requestor_ip' => $requestorIp,
96-
'request_url' => $requestPath,
97-
'request_headers' => $requestHeaders,
98-
'request_body' => $requestBody,
99-
'request_datetime' => $requestDateTime
100-
]);
101-
$this->logResourceModel->save($log);
102-
$this->lastLog = $log;
103-
}
104-
} catch (Exception $exception) {
105-
$this->logger->error(__('Cant complete webapi log save because of error: %1', $exception->getMessage()));
81+
$filter = $this->config->getFilterRequestPaths();
82+
83+
// Only log this request if the path is not filtered.
84+
if (!$this->filterRequestPath($requestPath, $filter)) {
85+
if ($this->config->isSecretMode()) {
86+
$requestorIp = $this->secretParser->parseIp();
87+
$requestHeaders = $this->secretParser->parseHeades($requestHeaders);
88+
$requestBody = $this->secretParser->parseBody($requestBody);
89+
}
90+
91+
$log = $this->logFactory->create();
92+
$log->setData([
93+
'request_method' => $requestMethod,
94+
'requestor_ip' => $requestorIp,
95+
'request_url' => $requestPath,
96+
'request_headers' => $requestHeaders,
97+
'request_body' => $requestBody,
98+
'request_datetime' => $requestDateTime
99+
]);
100+
$this->lastLog = $log;
106101
}
107102
}
108103

Plugin/FrontControllerDispatchAfter.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,12 @@ public function __construct(
5454
*/
5555
public function afterDispatch(Rest $subject, $result, RequestInterface $request)
5656
{
57-
if ($this->config->isEnabled()) {
57+
if ($this->config->isEnabled()
58+
&& (
59+
!$request->isXmlHttpRequest()
60+
|| !$this->config->isAjaxCallsDisabled()
61+
)
62+
) {
5863
$exceptions = $result->getException();
5964

6065
if (!empty($exceptions)) {

Plugin/FrontControllerDispatchBefore.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,12 @@ public function __construct(
5353
*/
5454
public function beforeDispatch(Rest $subject, RequestInterface $request)
5555
{
56-
if ($this->config->isEnabled()) {
56+
if ($this->config->isEnabled()
57+
&& (
58+
!$request->isXmlHttpRequest()
59+
|| !$this->config->isAjaxCallsDisabled()
60+
)
61+
) {
5762
$requestMethod = $request->getMethod();
5863
$requestorIp = $request->getClientIp();
5964
$requestPath = $request->getUriString();

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This module allows you to analyze all the webapi rest done call toward your mage
44

55
# Install
66

7-
`composer require ghostunicorns/module-webapi-logs`
7+
`composer require youwe/module-webapi-logs`
88

99
# Configure
1010

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "ghostunicorns/module-webapi-logs",
2+
"name": "youwe/module-webapi-logs",
33
"description": "Magento Webapi Log Details accessible via backend",
44
"type": "magento2-module",
55
"require": {

etc/adminhtml/system.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
<label>Enable Webapi Logs</label>
1818
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
1919
</field>
20+
<field id="disable_ajax_calls" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
21+
<label>Disable Webapi logs for AJAX calls</label>
22+
<comment><![CDATA[Ajax calls are used in cases of the checkout for example]]></comment>
23+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
24+
</field>
2025
<field id="secret_mode" translate="label" type="select" sortOrder="20" showInDefault="1" showInWebsite="0" showInStore="0">
2126
<label>Enable Secret Mode</label>
2227
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>

etc/db_schema.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,8 @@
2424
<index referenceId="WEBAPILOGS_ENTITY_ID_ENTITY_ID" indexType="btree">
2525
<column name="log_id"/>
2626
</index>
27+
<index referenceId="WEBAPILOGS_CREATED_AT_CREATED_AT" indexType="btree">
28+
<column name="created_at"/>
29+
</index>
2730
</table>
2831
</schema>

0 commit comments

Comments
 (0)