Add handling for more 5xx errors from the bridge
[MAILPOET-4209]
This commit is contained in:
@ -86,7 +86,10 @@ class MailPoetMapper {
|
|||||||
$message .= ' ' . $e->getMessage();
|
$message .= ' ' . $e->getMessage();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case API::RESPONSE_CODE_INTERNAL_SERVER_ERROR:
|
||||||
|
case API::RESPONSE_CODE_BAD_GATEWAY:
|
||||||
case API::RESPONSE_CODE_TEMPORARY_UNAVAILABLE:
|
case API::RESPONSE_CODE_TEMPORARY_UNAVAILABLE:
|
||||||
|
case API::RESPONSE_CODE_GATEWAY_TIMEOUT:
|
||||||
$message = __('Email service is temporarily not available, please try again in a few minutes.', 'mailpoet');
|
$message = __('Email service is temporarily not available, please try again in a few minutes.', 'mailpoet');
|
||||||
$retryInterval = self::TEMPORARY_UNAVAILABLE_RETRY_INTERVAL;
|
$retryInterval = self::TEMPORARY_UNAVAILABLE_RETRY_INTERVAL;
|
||||||
break;
|
break;
|
||||||
|
@ -15,7 +15,10 @@ class API {
|
|||||||
|
|
||||||
const RESPONSE_CODE_KEY_INVALID = 401;
|
const RESPONSE_CODE_KEY_INVALID = 401;
|
||||||
const RESPONSE_CODE_STATS_SAVED = 204;
|
const RESPONSE_CODE_STATS_SAVED = 204;
|
||||||
|
const RESPONSE_CODE_INTERNAL_SERVER_ERROR = 500;
|
||||||
|
const RESPONSE_CODE_BAD_GATEWAY = 502;
|
||||||
const RESPONSE_CODE_TEMPORARY_UNAVAILABLE = 503;
|
const RESPONSE_CODE_TEMPORARY_UNAVAILABLE = 503;
|
||||||
|
const RESPONSE_CODE_GATEWAY_TIMEOUT = 504;
|
||||||
const RESPONSE_CODE_NOT_ARRAY = 422;
|
const RESPONSE_CODE_NOT_ARRAY = 422;
|
||||||
const RESPONSE_CODE_PAYLOAD_TOO_BIG = 413;
|
const RESPONSE_CODE_PAYLOAD_TOO_BIG = 413;
|
||||||
const RESPONSE_CODE_PAYLOAD_ERROR = 400;
|
const RESPONSE_CODE_PAYLOAD_ERROR = 400;
|
||||||
|
@ -184,4 +184,19 @@ class MailPoetMapperTest extends \MailPoetUnitTest {
|
|||||||
expect($error->getMessage())->stringContainsString("You’ll soon be able to send once our team reviews your account.");
|
expect($error->getMessage())->stringContainsString("You’ll soon be able to send once our team reviews your account.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function testGetUnavailableServiceError() {
|
||||||
|
$apiResult = [
|
||||||
|
'code' => API::RESPONSE_CODE_GATEWAY_TIMEOUT,
|
||||||
|
'status' => API::SENDING_STATUS_SEND_ERROR,
|
||||||
|
'message' => 'Service is temporary unavailable',
|
||||||
|
];
|
||||||
|
|
||||||
|
$error = $this->mapper->getErrorForResult($apiResult, $this->subscribers);
|
||||||
|
expect($error)->isInstanceOf(MailerError::class);
|
||||||
|
expect($error->getRetryInterval())->equals(MailPoetMapper::TEMPORARY_UNAVAILABLE_RETRY_INTERVAL);
|
||||||
|
expect($error->getOperation())->equals(MailerError::OPERATION_SEND);
|
||||||
|
expect($error->getLevel())->equals(MailerError::LEVEL_HARD);
|
||||||
|
expect($error->getMessage())->equals('Email service is temporarily not available, please try again in a few minutes.');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user