Add API for fixing inconsistent data

[MAILPOET-1587]
This commit is contained in:
Rostislav Wolny
2024-08-01 10:11:48 +02:00
committed by Aschepikov
parent b68e6b7639
commit cb5f533e54
3 changed files with 52 additions and 11 deletions

View File

@@ -8,6 +8,7 @@ use MailPoet\API\JSON\Response;
use MailPoet\Config\AccessControl;
use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
use MailPoet\Util\DataInconsistency\DataInconsistencyController;
class Help extends APIEndpoint {
@@ -16,11 +17,14 @@ class Help extends APIEndpoint {
];
private ScheduledTasksRepository $scheduledTasksRepository;
private DataInconsistencyController $dataInconsistencyController;
public function __construct(
ScheduledTasksRepository $scheduledTasksRepository
ScheduledTasksRepository $scheduledTasksRepository,
DataInconsistencyController $dataInconsistencyController
) {
$this->scheduledTasksRepository = $scheduledTasksRepository;
$this->dataInconsistencyController = $dataInconsistencyController;
}
public function cancelTask($data): Response {
@@ -59,6 +63,15 @@ class Help extends APIEndpoint {
}
}
public function fixInconsistentData($data): Response {
try {
$this->dataInconsistencyController->fixInconsistentData($data['inconsistency'] ?? '');
} catch (\Exception $e) {
return $this->badRequest([ApiError::BAD_REQUEST => $e->getMessage()]);
}
return $this->successResponse($this->dataInconsistencyController->getInconsistentDataStatus());
}
private function validateTaskId($data): void {
$isValid = isset($data['id']) && is_numeric($data['id']);
if (!$isValid) {