|
2 | 2 |
|
3 | 3 | namespace MailQ;
|
4 | 4 |
|
| 5 | +use MailQ\Exceptions\MailQException; |
| 6 | +use MailQ\Exceptions\UnresolvedMxDomainException; |
| 7 | + |
5 | 8 | class Connector {
|
6 | 9 |
|
7 | 10 | private $apiKey;
|
@@ -86,11 +89,32 @@ private function createResponse($ch,$response) {
|
86 | 89 |
|
87 | 90 | function processError(Response $responseData,$response) {
|
88 | 91 | switch ($responseData->getHttpCode()) {
|
89 |
| - case 401: throw new \Exception($responseData->getHttpCode()." Invalid API key."); |
90 |
| - case 405: throw new \Exception($responseData->getHttpCode()." Method not allowed."); |
91 |
| - default: throw new \Exception($responseData->getHttpCode().": ".$response); |
| 92 | + case 401: throw new MailQException("Invalid API key.",$responseData->getHttpCode()); |
| 93 | + case 405: throw new MailQException(" Method not allowed.",$responseData->getHttpCode()); |
| 94 | + default: $this->handleDefaultException($responseData,$response); |
92 | 95 | }
|
93 | 96 | }
|
| 97 | + |
| 98 | + private function handleDefaultException(Response $responseData,$response) { |
| 99 | + $errorData = json_decode($response); |
| 100 | + if ($errorData) { |
| 101 | + if (isset($errorData->error)) { |
| 102 | + $this->createSpecificException($errorData->error); |
| 103 | + } |
| 104 | + } |
| 105 | + else { |
| 106 | + throw new MailQException("Unknonw exception",$responseData->getHttpCode()); |
| 107 | + } |
| 108 | + } |
| 109 | + |
| 110 | + private function createSpecificException($errorData) { |
| 111 | + if ($errorData->message == 'Could not resolve MX domain.') { |
| 112 | + throw new UnresolvedMxDomainException($errorData->message,$errorData->code); |
| 113 | + } |
| 114 | + else { |
| 115 | + throw new MailQException($errorData->message,$errorData->code); |
| 116 | + } |
| 117 | + } |
94 | 118 |
|
95 | 119 | /**
|
96 | 120 | * Storing headers from curl
|
|
0 commit comments