get($url, [ 'access_key' => $access_key, 'units' => $units, 'query' => $city ]); } public function checkResponse($city, ClientResponse $response) { if ($response->successful()) { [$isValidResponse, $error] = $this->checkErrorMessage($city, $response); } elseif ($response->failed()) { $isValidResponse = false; $error = 'Request failed.'; } return [$isValidResponse, $error]; } public static function checkErrorMessage($city, ClientResponse $response) { $isValidResponse = true; $error = ''; if ($response->json('success') === false) { $isValidResponse = false; ($response->json('error.type') === 'usage_limit_reached') ? $error = 'The usage limit of your API key has been reached.' : $error = "No city named '{$city}' could be found."; } elseif (City::where('location_name', $response->json('location.name'))->exists()) { $isValidResponse = false; $error = "'{$response->json('location.name')}, {$response->json('location.country')}' has been already added."; } return [$isValidResponse, $error]; } }