mirror of
https://github.com/retailcrm/prestashop-module.git
synced 2025-03-03 19:53:19 +03:00
38 lines
1.4 KiB
PHP
38 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
class RetailcrmLoggerMiddleware implements RetailcrmMiddlewareInterface
|
||
|
{
|
||
|
/**
|
||
|
* @param RetailcrmApiRequest $request
|
||
|
* @param callable|null $next
|
||
|
* @return RetailcrmApiResponse
|
||
|
*/
|
||
|
public function __invoke(RetailcrmApiRequest $request, callable $next = null)
|
||
|
{
|
||
|
$method = $request->getMethod();
|
||
|
|
||
|
if (!is_null($request->getMethod())) {
|
||
|
RetailcrmLogger::writeDebug($method, print_r($request->getData(), true));
|
||
|
}
|
||
|
$response = $next($request);
|
||
|
|
||
|
if ($response->isSuccessful()) {
|
||
|
// Don't print long lists in debug logs (errors while calling this will be easy to detect anyway)
|
||
|
if (in_array($method, ['statusesList', 'paymentTypesList', 'deliveryTypesList'])) {
|
||
|
RetailcrmLogger::writeDebug($method, '[request was successful, but response is omitted]');
|
||
|
} else {
|
||
|
RetailcrmLogger::writeDebug($method, $response->getRawResponse());
|
||
|
}
|
||
|
} else {
|
||
|
RetailcrmLogger::writeCaller($method, $response->getErrorMsg());
|
||
|
|
||
|
if (isset($response['errors'])) {
|
||
|
RetailcrmApiErrors::set($response['errors'], $response->getStatusCode());
|
||
|
$error = RetailcrmLogger::reduceErrors($response['errors']);
|
||
|
RetailcrmLogger::writeNoCaller($error);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $response;
|
||
|
}
|
||
|
}
|