| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| declare(strict_types=1); |
|
|
| namespace Piwik\Tracker; |
|
|
| use Piwik\Log\LoggerInterface; |
| use Piwik\Plugin\RequestProcessors; |
|
|
| |
| |
| |
| class BotRequest |
| { |
| use RequestHandlerTrait; |
|
|
| |
| |
| |
| protected $request; |
|
|
| |
| |
| |
| protected $botRequestProcessors; |
|
|
| |
| |
| |
| protected $requestProcessors; |
|
|
| |
| |
| |
| protected $logger; |
|
|
| public function __construct(RequestProcessors $requestProcessors, LoggerInterface $logger) |
| { |
| $this->requestProcessors = $requestProcessors->getRequestProcessors(); |
| $this->botRequestProcessors = $requestProcessors->getBotRequestProcessors(); |
| $this->logger = $logger; |
| } |
|
|
| public function setRequest(Request $request) |
| { |
| $this->request = $request; |
| } |
|
|
| public function handle() |
| { |
| $this->checkSiteExists($this->request); |
|
|
| |
| |
| |
| |
| |
| foreach ($this->requestProcessors as $processor) { |
| $this->logger->debug("Executing " . get_class($processor) . "::manipulateRequest()..."); |
|
|
| $processor->manipulateRequest($this->request); |
| } |
|
|
| foreach ($this->botRequestProcessors as $processor) { |
| $this->logger->debug("Executing " . get_class($processor) . "::manipulateRequest()..."); |
|
|
| $processor->manipulateRequest($this->request); |
| } |
|
|
| $this->validateRequest($this->request); |
|
|
| $wasHandled = false; |
|
|
| foreach ($this->botRequestProcessors as $processor) { |
| $this->logger->debug("Executing " . get_class($processor) . "::handleRequest()..."); |
|
|
| $wasHandled |= $processor->handleRequest($this->request); |
| } |
|
|
| if ($wasHandled) { |
| $this->markArchivedReportsAsInvalidIfArchiveAlreadyFinished($this->request); |
| } |
| } |
| } |
|
|