Refactor sending methods to use error mappers
We want to add some logic to error handling. This commit extracts error handling code from sending methods classes, which already do a lot of other stuff, to error mappers which are responsible for creating proper error object (MailerError). This error object is a replacement for assoc. array which already had some special keys for certain usecases and can not be properly type hinted. [MAILPOET-1154]
This commit is contained in:
@@ -5,6 +5,7 @@ use MailPoet\Cron\CronHelper;
|
||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
|
||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
|
||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
|
||||
use MailPoet\Mailer\MailerError;
|
||||
use MailPoet\Mailer\MailerLog;
|
||||
use MailPoet\Models\ScheduledTask as ScheduledTaskModel;
|
||||
use MailPoet\Models\StatisticsNewsletters as StatisticsNewslettersModel;
|
||||
@@ -164,10 +165,12 @@ class SendingQueue {
|
||||
);
|
||||
// log error message and schedule retry/pause sending
|
||||
if($send_result['response'] === false) {
|
||||
if(isset($send_result['retry_interval'])) {
|
||||
MailerLog::processNonBlockingError($send_result['operation'], $send_result['error_message'], $send_result['retry_interval']);
|
||||
$error = $send_result['error'];
|
||||
assert($error instanceof MailerError);
|
||||
if($error->getRetryInterval() !== null) {
|
||||
MailerLog::processNonBlockingError($error->getOperation(), $error->getMessage(), $error->getRetryInterval());
|
||||
} else {
|
||||
MailerLog::processError($send_result['operation'], $send_result['error_message']);
|
||||
MailerLog::processError($error->getOperation(), $error->getMessage());
|
||||
}
|
||||
}
|
||||
// update processed/to process list
|
||||
|
Reference in New Issue
Block a user