Skip to content
Snippets Groups Projects
Commit aae10706 authored by Demian Katz's avatar Demian Katz
Browse files

Smarter error handling.

parent dc298be9
No related merge requests found
...@@ -53,10 +53,7 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept ...@@ -53,10 +53,7 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept
{ {
if (is_array($apiErrorMessage)) { if (is_array($apiErrorMessage)) {
$this->setApiError($apiErrorMessage); $this->setApiError($apiErrorMessage);
parent::__construct( parent::__construct($this->apiErrorDetails['Description'] ?? '');
isset($this->apiErrorDetails['Description'])
? $this->apiErrorDetails['Description'] : ''
);
} else { } else {
parent::__construct($apiErrorMessage); parent::__construct($apiErrorMessage);
} }
...@@ -71,20 +68,27 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept ...@@ -71,20 +68,27 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept
*/ */
protected function setApiError($message) protected function setApiError($message)
{ {
//AuthErrorMessages
if (isset($message['ErrorCode'])) { if (isset($message['ErrorCode'])) {
// AuthErrorMessages
$this->apiErrorDetails['ErrorCode'] = $message['ErrorCode']; $this->apiErrorDetails['ErrorCode'] = $message['ErrorCode'];
$this->apiErrorDetails['Description'] = $message['Reason']; $this->apiErrorDetails['Description'] = $message['Reason'];
$this->apiErrorDetails['DetailedDescription'] $this->apiErrorDetails['DetailedDescription']
= $message['AdditionalDetail']; = $message['AdditionalDetail'];
} } elseif (isset($message['ErrorNumber'])) {
// EDSAPI error messages
//EDSAPI error messages
if (isset($message['ErrorNumber'])) {
$this->apiErrorDetails['ErrorCode'] = $message['ErrorNumber']; $this->apiErrorDetails['ErrorCode'] = $message['ErrorNumber'];
$this->apiErrorDetails['Description'] = $message['ErrorDescription']; $this->apiErrorDetails['Description'] = $message['ErrorDescription'];
$this->apiErrorDetails['DetailedDescription'] $this->apiErrorDetails['DetailedDescription']
= $message['DetailedErrorDescription']; = $message['DetailedErrorDescription'];
} elseif (is_array($message['errors'] ?? null)
&& count($message['errors']) > 0
) {
// Array of errors
$this->apiErrorDetails['ErrorCode'] = $message['errors'][0]['code'];
$this->apiErrorDetails['Description'] = $message['errors'][0]['message'];
} else {
$this->apiErrorDetails['ErrorCode'] = null;
$this->apiErrorDetails['Description'] = 'unrecognized error';
} }
} }
...@@ -115,8 +119,7 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept ...@@ -115,8 +119,7 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept
*/ */
public function getApiErrorCode() public function getApiErrorCode()
{ {
return isset($this->apiErrorDetails) return $this->apiErrorDetails['ErrorCode'] ?? '';
? $this->apiErrorDetails['ErrorCode'] : '';
} }
/** /**
...@@ -126,8 +129,7 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept ...@@ -126,8 +129,7 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept
*/ */
public function getApiErrorDescription() public function getApiErrorDescription()
{ {
return isset($this->apiErrorDetails) return $this->apiErrorDetails['Description'] ?? '';
? $this->apiErrorDetails['Description'] : '';
} }
/** /**
...@@ -137,7 +139,6 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept ...@@ -137,7 +139,6 @@ class EbscoEdsApiException extends \VuFindSearch\Backend\Exception\BackendExcept
*/ */
public function getApiDetailedErrorDescription() public function getApiDetailedErrorDescription()
{ {
return (isset($this->apiErrorDetails)) return $this->apiErrorDetails['DetailedDescription'] ?? '';
? $this->apiErrorDetails['DetailedDescription'] : '';
} }
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment