Skip to content

Commit d002c5d

Browse files
author
David Nahodyl
committed
Improved error handling for things like 500 errors with valid responses
1 parent e7fb78c commit d002c5d

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

src/Services/FileMakerConnection.php

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -153,20 +153,25 @@ protected function checkResponseForErrors($response)
153153
{
154154
$messages = Arr::get($response, 'messages', []);
155155

156-
foreach ($messages as $message) {
157-
$code = (int)$message['code'];
158-
159-
if ($code !== 0) {
160-
switch ($code) {
161-
case 952:
162-
// API token is expired. We should expire it in the cache so it isn't used again.
163-
$this->forgetSessionToken();
164-
return;
165-
default:
166-
throw new FileMakerDataApiException($message['message'], $code);
156+
if ($messages){
157+
foreach ($messages as $message) {
158+
$code = (int)$message['code'];
159+
160+
if ($code !== 0) {
161+
switch ($code) {
162+
case 952:
163+
// API token is expired. We should expire it in the cache so it isn't used again.
164+
$this->forgetSessionToken();
165+
return;
166+
default:
167+
throw new FileMakerDataApiException($message['message'], $code);
168+
}
167169
}
168170
}
171+
} else{
172+
$response->throw();
169173
}
174+
170175
}
171176

172177

@@ -497,12 +502,14 @@ protected function makeRequest($method, $url, $params = [], ?PendingRequest $req
497502
}
498503

499504
$response = $request->withMiddleware($this->retryMiddleware())
500-
->{$method}($url, $params)->throw()->json();
505+
->{$method}($url, $params);
501506

502507
// Check for errors
503508
$this->checkResponseForErrors($response);
504509

505-
return $response;
510+
// Return the JSON response
511+
$json = $response->json();
512+
return $json;
506513
}
507514

508515
public function setRetries($retries)

0 commit comments

Comments
 (0)