Merge pull request #722 from turbo124/api_errors

Improve error handling in API
This commit is contained in:
David Bomba 2016-02-16 10:28:31 +11:00
commit cacc24ede4
3 changed files with 12 additions and 5 deletions

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -1,5 +1,6 @@
<?php namespace App\Http\Controllers;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Utils;
use Response;
use Input;
@ -134,7 +135,13 @@ class ClientApiController extends BaseAPIController
public function update(UpdateClientRequest $request, $publicId)
{
if ($request->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'));