Remove remaining uses of the ScheduledTaskSubscriber model from Sending

[MAILPOET-4368]
This commit is contained in:
Rodrigo Primo
2023-07-07 11:48:32 -03:00
committed by Aschepikov
parent 63a0f0b940
commit 18d34202a8
3 changed files with 31 additions and 4 deletions

View File

@@ -164,8 +164,16 @@ class ScheduledTaskSubscribersRepository extends Repository {
}
}
public function countProcessed(ScheduledTaskEntity $scheduledTaskEntity): int {
return $this->countBy(['task' => $scheduledTaskEntity, 'processed' => ScheduledTaskSubscriberEntity::STATUS_PROCESSED]);
}
public function countUnprocessed(ScheduledTaskEntity $scheduledTaskEntity): int {
return $this->countBy(['task' => $scheduledTaskEntity, 'processed' => ScheduledTaskSubscriberEntity::STATUS_UNPROCESSED]);
}
private function checkCompleted(ScheduledTaskEntity $task): void {
$count = $this->countBy(['task' => $task, 'processed' => ScheduledTaskSubscriberEntity::STATUS_UNPROCESSED]);
$count = $this->countUnprocessed($task);
if ($count === 0) {
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
$task->setProcessedAt(new Carbon());

View File

@@ -10,7 +10,6 @@ use MailPoet\Entities\SendingQueueEntity;
use MailPoet\InvalidStateException;
use MailPoet\Logging\LoggerFactory;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\ScheduledTaskSubscriber;
use MailPoet\Models\SendingQueue;
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
use MailPoet\Newsletter\Sending\ScheduledTaskSubscribersRepository;
@@ -305,8 +304,8 @@ class Sending {
$this->queue->countToProcess = max($this->queue->countToProcess - $count, 0);
} else {
// query DB to update counts, slower but more accurate, to be used if count isn't known
$this->queue->countProcessed = ScheduledTaskSubscriber::getProcessedCount($this->task->id);
$this->queue->countToProcess = ScheduledTaskSubscriber::getUnprocessedCount($this->task->id);
$this->queue->countProcessed = $this->scheduledTaskSubscribersRepository->countProcessed($this->scheduledTaskEntity);
$this->queue->countToProcess = $this->scheduledTaskSubscribersRepository->countUnprocessed($this->scheduledTaskEntity);
$this->queue->countTotal = $this->queue->countProcessed + $this->queue->countToProcess;
}
return $this->queue->save();

View File

@@ -96,4 +96,24 @@ class ScheduledTaskSubscribersRepositoryTest extends \MailPoetTest {
$this->assertSame([$this->taskSubscriber2, $this->taskSubscriber3], $this->repository->findBy(['task' => $this->scheduledTask1]));
$this->assertSame([], $this->repository->findBy(['task' => $this->scheduledTask2]));
}
public function testCountProcessed() {
$this->assertSame(2, $this->repository->countProcessed($this->scheduledTask1));
$this->assertSame(1, $this->repository->countProcessed($this->scheduledTask2));
$subscriberId = $this->subscriberUnprocessed->getId();
$this->assertIsInt($subscriberId);
$this->repository->updateProcessedSubscribers($this->scheduledTask2, [$subscriberId]);
$this->assertSame(2, $this->repository->countProcessed($this->scheduledTask2));
}
public function testCountUnprocessed() {
$this->assertSame(1, $this->repository->countUnprocessed($this->scheduledTask1));
$this->assertSame(1, $this->repository->countUnprocessed($this->scheduledTask2));
$subscriberId = $this->subscriberUnprocessed->getId();
$this->assertIsInt($subscriberId);
$this->repository->updateProcessedSubscribers($this->scheduledTask2, [$subscriberId]);
$this->assertSame(0, $this->repository->countUnprocessed($this->scheduledTask2));
}
}