42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace PurgeFakeCustomer\Controller;
|
|
|
|
use PurgeFakeCustomer\Event\FakeCustomerEvent;
|
|
use Thelia\Controller\Front\BaseFrontController;
|
|
use Thelia\Core\HttpFoundation\Response;
|
|
use Thelia\Model\ConfigQuery;
|
|
|
|
/**
|
|
* Created by Laurent LE CORRE <laurent@thecoredev.fr>
|
|
* Date: 12/01/2021
|
|
*/
|
|
class PurgeController extends BaseFrontController
|
|
{
|
|
public function purge($secretKey)
|
|
{
|
|
$responseText = '';
|
|
$storedSecretKey = trim(@file_get_contents(__DIR__ .'/../Config/secret-key.txt'));
|
|
|
|
if ($storedSecretKey != $secretKey) {
|
|
$responseText .= sprintf("ERROR: key verification failed.<br>");
|
|
} else {
|
|
|
|
$critere = ConfigQuery::read('purgefakecustomer_critere', '');
|
|
$responseText .= sprintf("INFO: Deleting fake customers<br>");
|
|
$verbose = $this->getRequest()->query->get('verbose', false);
|
|
|
|
$event = new FakeCustomerEvent($critere, !empty($verbose));
|
|
$this->getDispatcher()->dispatch(FakeCustomerEvent::PURGE, $event);
|
|
|
|
foreach ($event->getStatus() as $status => $level) {
|
|
$responseText .= strtoupper($level) . ": $status<br>";
|
|
}
|
|
|
|
$responseText .= sprintf("INFO: %d fake customers deleted<br>", $event->getDeletedCount());
|
|
}
|
|
|
|
return new Response($responseText);
|
|
}
|
|
}
|