Refactor updateProcessedSubscribers() to use Doctrine instead of Paris
It was necessary to update a test to be more lenient when comparing dates and another one to persist a change in Paris to the database. [MAILPOET-4368]
This commit is contained in:
committed by
Aschepikov
parent
c0a091de04
commit
2b368141db
@@ -276,8 +276,10 @@ class Sending {
|
|||||||
$this->updateCount();
|
$this->updateCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateProcessedSubscribers(array $processedSubscribers) {
|
public function updateProcessedSubscribers(array $processedSubscribers): bool {
|
||||||
$this->taskSubscribers->updateProcessedSubscribers($processedSubscribers);
|
$this->scheduledTaskSubscribersRepository->updateProcessedSubscribers($this->scheduledTaskEntity, $processedSubscribers);
|
||||||
|
$this->scheduledTasksRepository->refresh($this->scheduledTaskEntity); // needed while Sending still uses Paris
|
||||||
|
$this->status = $this->scheduledTaskEntity->getStatus();
|
||||||
return $this->updateCount(count($processedSubscribers))->getErrors() === false;
|
return $this->updateCount(count($processedSubscribers))->getErrors() === false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,19 +24,6 @@ class Subscribers {
|
|||||||
$this->checkCompleted();
|
$this->checkCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateProcessedSubscribers(array $processedSubscribers) {
|
|
||||||
if (!empty($processedSubscribers)) {
|
|
||||||
ScheduledTaskSubscriber::rawExecute(sprintf(
|
|
||||||
'UPDATE %1$s SET processed = %2$s WHERE task_id = %3$s AND subscriber_id IN (%4$s)',
|
|
||||||
ScheduledTaskSubscriber::$_table,
|
|
||||||
ScheduledTaskSubscriber::STATUS_PROCESSED,
|
|
||||||
$this->task->id,
|
|
||||||
join(', ', array_map('intval', $processedSubscribers))
|
|
||||||
));
|
|
||||||
}
|
|
||||||
$this->checkCompleted();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function saveSubscriberError($subcriberId, $errorMessage) {
|
public function saveSubscriberError($subcriberId, $errorMessage) {
|
||||||
$this->getSubscribers()
|
$this->getSubscribers()
|
||||||
->where('subscriber_id', $subcriberId)
|
->where('subscriber_id', $subcriberId)
|
||||||
|
@@ -271,6 +271,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
// in the process() method and after that execution limits will be enforced
|
// in the process() method and after that execution limits will be enforced
|
||||||
$queue = $this->queue;
|
$queue = $this->queue;
|
||||||
$queue->status = SendingQueue::STATUS_COMPLETED;
|
$queue->status = SendingQueue::STATUS_COMPLETED;
|
||||||
|
$queue->save();
|
||||||
$sendingQueueWorker = $this->make(
|
$sendingQueueWorker = $this->make(
|
||||||
$this->getSendingQueueWorker(),
|
$this->getSendingQueueWorker(),
|
||||||
[
|
[
|
||||||
@@ -616,7 +617,7 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
$updatedNewsletter = $this->newslettersRepository->findOneById($this->newsletter->id);
|
$updatedNewsletter = $this->newslettersRepository->findOneById($this->newsletter->id);
|
||||||
$this->assertInstanceOf(NewsletterEntity::class, $updatedNewsletter);
|
$this->assertInstanceOf(NewsletterEntity::class, $updatedNewsletter);
|
||||||
verify($updatedNewsletter->getStatus())->equals(Newsletter::STATUS_SENT);
|
verify($updatedNewsletter->getStatus())->equals(Newsletter::STATUS_SENT);
|
||||||
verify($updatedNewsletter->getSentAt())->equals($scheduledTask->getProcessedAt());
|
verify($updatedNewsletter->getSentAt())->equalsWithDelta($scheduledTask->getProcessedAt(), 1);
|
||||||
|
|
||||||
// queue subscriber processed/to process count is updated
|
// queue subscriber processed/to process count is updated
|
||||||
verify($scheduledTask->getSubscribersByProcessed(ScheduledTaskSubscriber::STATUS_UNPROCESSED))
|
verify($scheduledTask->getSubscribersByProcessed(ScheduledTaskSubscriber::STATUS_UNPROCESSED))
|
||||||
|
Reference in New Issue
Block a user