diff options
author | Camil Staps | 2015-05-18 20:39:36 +0200 |
---|---|---|
committer | Camil Staps | 2015-05-18 20:39:36 +0200 |
commit | 4324c9a154918abcf14d148ac06648d6a1889d3e (patch) | |
tree | 4c877ac52131619d5edd2ce525d92270617e46f0 /src | |
parent | Seems to work (diff) |
Exception handlers compatibility without dingo facade; fixed namespaces
Diffstat (limited to 'src')
4 files changed, 41 insertions, 27 deletions
diff --git a/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php b/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php index d962d70..7521ebf 100644 --- a/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php +++ b/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php @@ -52,7 +52,7 @@ class BotleaguesApiServiceProvider extends ServiceProvider { } header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); header('Access-Control-Allow-Headers: Authorization'); - + $this->setupErrorHandlers(); } @@ -85,30 +85,32 @@ class BotleaguesApiServiceProvider extends ServiceProvider { // 500); // }); -// API::error(function(\Illuminate\Database\Eloquent\ModelNotFoundException $e) { -// return Response::make( -// ['error' => 'Resource not found'], -// 404); -// }); -// API::error(function(\Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException $e) { -// return Response::make( -// ['error' => !config('app.debug') || empty($e->getMessage()) ? 'Access denied' : $e->getMessage()], -// 404); -// }); -// API::error(function(Exception\ValidationException $e) { -// return Response::make( -// [ -// 'error' => $e->getMessage(), -// 'errors' => $e->errors -// ], -// 500); -// }); -// -// API::error(function(\Exception $e) { -// return Response::make( -// ['error' => Config::get('app.debug') ? $e->getMessage() : "Internal error"], -// 500); -// }); + $exception = app('api.exception'); + + $exception->register(function(\Illuminate\Database\Eloquent\ModelNotFoundException $e) { + return Response::make( + ['error' => 'Resource not found'], + 404); + }); + $exception->register(function(\Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException $e) { + return Response::make( + ['error' => !config('app.debug') || empty($e->getMessage()) ? 'Access denied' : $e->getMessage()], + 404); + }); + $exception->register(function(Exception\ValidationException $e) { + return Response::make( + [ + 'error' => $e->getMessage(), + 'errors' => $e->errors + ], + 500); + }); + + $exception->register(function(\Exception $e) { + return Response::make( + ['error' => Config::get('app.debug') ? $e->getMessage() : "Internal error"], + 500); + }); } } diff --git a/src/CamilStaps/BotleaguesApi/Database/PasswordReminder.php b/src/CamilStaps/BotleaguesApi/Database/PasswordReminder.php index 204df90..65c4773 100644 --- a/src/CamilStaps/BotleaguesApi/Database/PasswordReminder.php +++ b/src/CamilStaps/BotleaguesApi/Database/PasswordReminder.php @@ -22,7 +22,7 @@ class PasswordReminder extends Model { public function save(array $options = array()) { $this->valid_till = date("Y-m-d H:i:s", time() + 3600); - $user = User::find($this->userId); + $user = User::findOrFail($this->userId); Mail::send('botleagues-api::emails.auth.reminder', ['token' => $this->token], function($message) use ($user) { $message->to($user->email, "User " . $user->id); }); diff --git a/src/controllers/PasswordReminderController.php b/src/controllers/PasswordReminderController.php index 622e92c..bf9d959 100644 --- a/src/controllers/PasswordReminderController.php +++ b/src/controllers/PasswordReminderController.php @@ -9,7 +9,9 @@ namespace CamilStaps\BotleaguesApi\Controllers; use CamilStaps\BotleaguesApi\Database\PasswordReminder; +use CamilStaps\BotleaguesApi\Exception\ValidationException; use Illuminate\Support\Facades\Input; +use Illuminate\Support\Facades\Validator; class PasswordReminderController extends BaseController { @@ -23,6 +25,15 @@ class PasswordReminderController extends BaseController { * Set the userId and create a random token */ public function store() { + $rules = [ + 'user_id' => ['required'] + ]; + $payload = Input::only('user_id'); + $validator = Validator::make($payload, $rules); + if ($validator->fails()) { + throw new ValidationException('Could not find user.', $validator->errors()); + } + $this->passwordReminder->userId = Input::get('user_id'); $this->passwordReminder->token = base64_encode(openssl_random_pseudo_bytes(64)); diff --git a/src/controllers/UserController.php b/src/controllers/UserController.php index a64ed71..6af3fe8 100644 --- a/src/controllers/UserController.php +++ b/src/controllers/UserController.php @@ -2,6 +2,7 @@ namespace CamilStaps\BotleaguesApi\Controllers; use CamilStaps\BotleaguesApi\Database\User; +use CamilStaps\BotleaguesApi\Exception\ValidationException; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Input; @@ -46,7 +47,7 @@ class UserController extends BaseController { $payload = Input::only('email', 'password'); $validator = Validator::make($payload, $rules); if ($validator->fails()) { - throw new Exception\ValidationException('Could not create new user.', $validator->errors()); + throw new ValidationException('Could not create new user.', $validator->errors()); } $this->user->email = Input::get('email'); |