From f8fee3e8cd517295fb29614a376f16de30c14917 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 15 Feb 2016 21:24:06 +1100 Subject: [PATCH 1/2] Error handling for API --- app/Http/Controllers/AccountApiController.php | 4 ++-- app/Http/Controllers/BaseAPIController.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/AccountApiController.php b/app/Http/Controllers/AccountApiController.php index fc909461353f..193cf2d7c5ef 100644 --- a/app/Http/Controllers/AccountApiController.php +++ b/app/Http/Controllers/AccountApiController.php @@ -36,14 +36,14 @@ class AccountApiController extends BaseAPIController { if ( ! env(API_SECRET) || $request->api_secret !== env(API_SECRET)) { sleep(ERROR_DELAY); - return 'Invalid secret'; + return $this->errorResponse(['message'=>'Invalid secret'],401); } if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) { return $this->processLogin($request); } else { sleep(ERROR_DELAY); - return 'Invalid credentials'; + return $this->errorResponse(['message'=>'Invalid credentials'],401); } } diff --git a/app/Http/Controllers/BaseAPIController.php b/app/Http/Controllers/BaseAPIController.php index f7ebf9b20d7e..af603a9c8f53 100644 --- a/app/Http/Controllers/BaseAPIController.php +++ b/app/Http/Controllers/BaseAPIController.php @@ -107,13 +107,13 @@ class BaseAPIController extends Controller return Response::make($response, 200, $headers); } - protected function errorResponse($response) + protected function errorResponse($response, $httpErrorCode = 400) { $error['error'] = $response; $error = json_encode($error, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); - return Response::make($error, 400, $headers); + return Response::make($error, $httpErrorCode, $headers); } From a29512001525102cbbb7fea223d4c3a94c053fc1 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 15 Feb 2016 21:57:58 +1100 Subject: [PATCH 2/2] Client API Error handling --- app/Http/Controllers/ClientApiController.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ClientApiController.php b/app/Http/Controllers/ClientApiController.php index 6cd91d1d09f1..fa4c9df266d5 100644 --- a/app/Http/Controllers/ClientApiController.php +++ b/app/Http/Controllers/ClientApiController.php @@ -1,5 +1,6 @@ action == ACTION_ARCHIVE) { - $client = Client::scope($publicId)->firstOrFail(); + + try { + $client = Client::scope($publicId)->firstOrFail(); + } catch (ModelNotFoundException $e) { + return $this->errorResponse(['message'=>'Record not found'], 400); + } + $this->clientRepo->archive($client); $transformer = new ClientTransformer(Auth::user()->account, Input::get('serializer'));