77 lines
2.3 KiB
PHP
77 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* @package Plumrocket_GlobalPrivacyControl
|
|
* @copyright Copyright (c) 2025 Plumrocket Inc.
|
|
* @license https://plumrocket.com/license End-user License Agreement
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Plumrocket\GlobalPrivacyControl\Observer;
|
|
|
|
use Magento\Framework\Event\Observer;
|
|
use Magento\Framework\Event\ObserverInterface;
|
|
use Plumrocket\GlobalPrivacyControl\Helper\Config;
|
|
use Plumrocket\GlobalPrivacyControl\Service\WellKnownFileManager;
|
|
use Psr\Log\LoggerInterface;
|
|
use Magento\Framework\Message\ManagerInterface;
|
|
|
|
class GenerateWellKnownFile implements ObserverInterface
|
|
{
|
|
/**
|
|
* @var \Plumrocket\GlobalPrivacyControl\Service\WellKnownFileManager
|
|
*/
|
|
private $wellKnownFileManager;
|
|
|
|
/**
|
|
* @var \Psr\Log\LoggerInterface
|
|
*/
|
|
private $logger;
|
|
|
|
/**
|
|
* @var \Magento\Framework\Message\ManagerInterface
|
|
*/
|
|
private $messageManager;
|
|
|
|
/**
|
|
* @param \Plumrocket\GlobalPrivacyControl\Service\WellKnownFileManager $wellKnownFileManager
|
|
* @param \Psr\Log\LoggerInterface $logger
|
|
* @param \Magento\Framework\Message\ManagerInterface $messageManager
|
|
*/
|
|
public function __construct(
|
|
WellKnownFileManager $wellKnownFileManager,
|
|
LoggerInterface $logger,
|
|
ManagerInterface $messageManager
|
|
) {
|
|
$this->wellKnownFileManager = $wellKnownFileManager;
|
|
$this->logger = $logger;
|
|
$this->messageManager = $messageManager;
|
|
}
|
|
|
|
/**
|
|
* @param \Magento\Framework\Event\Observer $observer
|
|
* @return void
|
|
*/
|
|
public function execute(Observer $observer): void
|
|
{
|
|
$changedPaths = $observer->getData('changed_paths');
|
|
$triggerPaths = [
|
|
Config::XML_PATH_WELL_KNOWN_LAST_UPDATE_DATE,
|
|
Config::XML_PATH_IS_MODULE_ENABLED,
|
|
];
|
|
|
|
if (! array_intersect($triggerPaths, $changedPaths)) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
$this->wellKnownFileManager->create();
|
|
} catch (\Throwable $e) {
|
|
$this->logger->error('[Plumrocket_GlobalPrivacyControl] Failed to update .well-known file: ' . $e->getMessage(), ['exception' => $e]);
|
|
$this->messageManager->addErrorMessage(
|
|
__('Something went wrong while updating the .well-known file: %1', $e->getMessage())
|
|
);
|
|
}
|
|
}
|
|
}
|