Add soft level errors distinction for MailPoet service
[MAILPOET-1154]
This commit is contained in:
@ -34,15 +34,16 @@ class MailPoetMapper {
|
||||
case API::RESPONSE_CODE_PAYLOAD_ERROR:
|
||||
$result_parsed = json_decode($result['message'], true);
|
||||
$message = __('Error while sending.', 'mailpoet');
|
||||
if(is_array($result_parsed)) {
|
||||
if(!is_array($result_parsed)) {
|
||||
$message .= ' ' . $result['message'];
|
||||
break;
|
||||
}
|
||||
try {
|
||||
$subscribers_errors = $this->getSubscribersErrors($result_parsed, $subscribers);
|
||||
$level = MailerError::LEVEL_SOFT;
|
||||
} catch (InvalidArgumentException $e) {
|
||||
$message .= ' ' . $e->getMessage();
|
||||
}
|
||||
} else {
|
||||
$message .= ' ' . $result['message'];
|
||||
}
|
||||
break;
|
||||
case API::RESPONSE_CODE_TEMPORARY_UNAVAILABLE:
|
||||
$message = __('Email service is temporarily not available, please try again in a few minutes.', 'mailpoet');
|
||||
|
@ -74,7 +74,7 @@ class MailPoetMapperTest extends \MailPoetTest {
|
||||
$error = $this->mapper->getErrorForResult($api_result, $this->subscribers);
|
||||
expect($error)->isInstanceOf(MailerError::class);
|
||||
expect($error->getOperation())->equals(MailerError::OPERATION_SEND);
|
||||
expect($error->getLevel())->equals(MailerError::LEVEL_HARD);
|
||||
expect($error->getLevel())->equals(MailerError::LEVEL_SOFT);
|
||||
$subscriber_errors = $error->getSubscriberErrors();
|
||||
expect(count($subscriber_errors))->equals(2);
|
||||
expect($subscriber_errors[0]->getEmail())->equals('a@example.com');
|
||||
|
Reference in New Issue
Block a user