From c22d23f91c46f088f97446a0bf5e0e382038e18f Mon Sep 17 00:00:00 2001 From: Sam Najian Date: Fri, 12 Aug 2022 17:13:23 +0200 Subject: [PATCH] Remove Tasks\State class and relevant test file [MAILPOET-4355] --- mailpoet/lib/DI/ContainerConfigurator.php | 2 - mailpoet/lib/Tasks/State.php | 113 ------------------ .../tests/integration/Tasks/StateTest.php | 112 ----------------- 3 files changed, 227 deletions(-) delete mode 100644 mailpoet/lib/Tasks/State.php delete mode 100644 mailpoet/tests/integration/Tasks/StateTest.php diff --git a/mailpoet/lib/DI/ContainerConfigurator.php b/mailpoet/lib/DI/ContainerConfigurator.php index 0f95ab5cf0..48c5299439 100644 --- a/mailpoet/lib/DI/ContainerConfigurator.php +++ b/mailpoet/lib/DI/ContainerConfigurator.php @@ -375,8 +375,6 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Services\AuthorizedEmailsController::class)->setPublic(true); $container->autowire(\MailPoet\Services\CongratulatoryMssEmailController::class)->setPublic(true); $container->autowire(\MailPoet\Services\AuthorizedSenderDomainController::class)->setPublic(true); - // Tasks - $container->autowire(\MailPoet\Tasks\State::class); // Settings $container->autowire(\MailPoet\Settings\SettingsController::class)->setPublic(true); $container->autowire(\MailPoet\Settings\SettingsChangeHandler::class)->setPublic(true); diff --git a/mailpoet/lib/Tasks/State.php b/mailpoet/lib/Tasks/State.php deleted file mode 100644 index 2c2eb08023..0000000000 --- a/mailpoet/lib/Tasks/State.php +++ /dev/null @@ -1,113 +0,0 @@ -newsletterUrl = $newsletterUrl; - $this->sendingQueuesRepository = $sendingQueuesRepository; - } - - /** - * @return array - */ - public function getCountsPerStatus() { - $stats = [ - ScheduledTask::STATUS_COMPLETED => 0, - ScheduledTask::STATUS_PAUSED => 0, - ScheduledTask::STATUS_SCHEDULED => 0, - ScheduledTask::VIRTUAL_STATUS_RUNNING => 0, - ]; - $counts = ScheduledTask::rawQuery( - "SELECT COUNT(*) as value, status - FROM `" . ScheduledTask::$_table . "` - WHERE deleted_at IS NULL AND `type` = 'sending' - GROUP BY status;" - )->findMany(); - foreach ($counts as $count) { - if ($count->status === null) { - $stats[ScheduledTask::VIRTUAL_STATUS_RUNNING] = (int)$count->value; - continue; - } - $stats[$count->status] = (int)$count->value; - } - return $stats; - } - - /** - * @return array - */ - public function getLatestTasks( - $type = null, - $statuses = [ - ScheduledTask::STATUS_COMPLETED, - ScheduledTask::STATUS_SCHEDULED, - ScheduledTask::VIRTUAL_STATUS_RUNNING, - ], - $limit = Scheduler::TASK_BATCH_SIZE - ) { - $tasks = []; - foreach ($statuses as $status) { - $query = ScheduledTask::orderByDesc('id') - ->whereNull('deleted_at') - ->limit($limit); - if ($type) { - $query = $query->where('type', $type); - } - if ($status === ScheduledTask::VIRTUAL_STATUS_RUNNING) { - $query = $query->whereNull('status'); - } else { - $query = $query->where('status', $status); - } - $tasks = array_merge($tasks, $query->findMany()); - } - - return array_map(function ($task) { - return $this->buildTaskData($task); - }, $tasks); - } - - /** - * @return array - */ - private function buildTaskData(ScheduledTask $task) { - $queue = $newsletter = null; - if ($task->type === Sending::TASK_TYPE) { - $queue = $this->sendingQueuesRepository->findOneBy(['task' => $task->id]); - $newsletter = $queue ? $queue->getNewsletter() : null; - } - return [ - 'id' => (int)$task->id, - 'type' => $task->type, - 'priority' => (int)$task->priority, - 'updated_at' => $task->updatedAt, - 'scheduled_at' => $task->scheduledAt ? $task->scheduledAt : null, - 'status' => $task->status, - 'newsletter' => $queue && $newsletter ? [ - 'newsletter_id' => $newsletter->getId(), - 'queue_id' => $queue->getId(), - 'subject' => $queue->getNewsletterRenderedSubject() ?: $newsletter->getSubject(), - 'preview_url' => $this->newsletterUrl->getViewInBrowserUrl($newsletter, null, $queue), - ] : [ - 'newsletter_id' => null, - 'queue_id' => null, - 'subject' => null, - 'preview_url' => null, - ], - ]; - } -} diff --git a/mailpoet/tests/integration/Tasks/StateTest.php b/mailpoet/tests/integration/Tasks/StateTest.php deleted file mode 100644 index 5e1f2865ce..0000000000 --- a/mailpoet/tests/integration/Tasks/StateTest.php +++ /dev/null @@ -1,112 +0,0 @@ -tasksState = new State( - $this->diContainer->get(Url::class), - $this->diContainer->get(SendingQueuesRepository::class) - ); - } - - public function testItCanFetchBasicTasksData() { - $this->createNewScheduledTask(SendingTask::TASK_TYPE); - $this->createNewScheduledTask(Migration::TASK_TYPE); - $data = $this->tasksState->getLatestTasks(); - expect(count($data))->equals(2); - expect($data[1]['id'])->equals(1); - expect($data[1]['type'])->equals(SendingTask::TASK_TYPE); - expect(is_int($data[1]['priority']))->true(); - expect(is_string($data[1]['updated_at']))->true(); - expect($data[1])->hasKey('scheduled_at'); - expect($data[1]['status'])->notEmpty(); - expect($data[1])->hasKey('newsletter'); - } - - public function testItCanFilterTasksByType() { - $this->createNewScheduledTask(SendingTask::TASK_TYPE); - $this->createNewScheduledTask(Migration::TASK_TYPE); - $data = $this->tasksState->getLatestTasks(Migration::TASK_TYPE); - expect(count($data))->equals(1); - expect($data[0]['type'])->equals(Migration::TASK_TYPE); - } - - public function testItCanFilterTasksByStatus() { - $this->createNewScheduledTask(SendingTask::TASK_TYPE, ScheduledTask::STATUS_COMPLETED); - $this->createNewScheduledTask(SendingTask::TASK_TYPE, ScheduledTask::STATUS_PAUSED); - $data = $this->tasksState->getLatestTasks(null, [ScheduledTask::STATUS_COMPLETED]); - expect(count($data))->equals(1); - expect($data[0]['status'])->equals(ScheduledTask::STATUS_COMPLETED); - } - - public function testItFetchesNewsletterDataForSendingTasks() { - $task = $this->createNewScheduledTask(SendingTask::TASK_TYPE); - $newsletter = $this->createNewNewsletter(); - $this->createNewSendingQueue($task->id, $newsletter->id, 'Rendered Subject'); - $data = $this->tasksState->getLatestTasks(); - expect($data[0]['newsletter']['newsletter_id'])->equals(1); - expect($data[0]['newsletter']['queue_id'])->equals(1); - expect($data[0]['newsletter']['subject'])->equals('Rendered Subject'); - expect($data[0]['newsletter']['preview_url'])->notEmpty(); - } - - public function testItDoesNotFailForSendingTaskWithMissingNewsletterInconsistentData() { - $task = $this->createNewScheduledTask(SendingTask::TASK_TYPE); - $this->createNewSendingQueue($task->id); - $data = $this->tasksState->getLatestTasks(); - expect($data[0]['newsletter']['newsletter_id'])->equals(null); - expect($data[0]['newsletter']['queue_id'])->equals(null); - expect($data[0]['newsletter']['subject'])->equals(null); - expect($data[0]['newsletter']['preview_url'])->equals(null); - } - - public function testItDoesNotFailForSendingTaskWithoutQueue() { - $this->createNewScheduledTask(SendingTask::TASK_TYPE); - $data = $this->tasksState->getLatestTasks(); - expect(count($data))->equals(1); - } - - public function createNewScheduledTask($type, $status = ScheduledTask::STATUS_COMPLETED) { - $task = ScheduledTask::create(); - $task->type = $type; - $task->status = $status; - return $task->save(); - } - - public function createNewNewsletter($subject = 'Test Subject') { - $newsletter = Newsletter::create(); - $newsletter->type = Newsletter::TYPE_STANDARD; - $newsletter->subject = $subject; - return $newsletter->save(); - } - - public function createNewSendingQueue($taskId, $newsletterId = null, $renderedSubject = null) { - $queue = SendingQueue::create(); - $queue->newsletterId = $newsletterId; - $queue->taskId = $taskId; - $queue->newsletterRenderedSubject = $renderedSubject; - return $queue->save(); - } - - public function _after() { - ORM::raw_execute('TRUNCATE ' . Newsletter::$_table); - ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table); - ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table); - } -}