diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php | 16 | ||||
-rw-r--r-- | src/controllers/UserController.php | 34 | ||||
-rw-r--r-- | src/routes.php | 6 |
3 files changed, 32 insertions, 24 deletions
diff --git a/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php b/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php index f38429f..012b5cf 100644 --- a/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php +++ b/src/CamilStaps/BotleaguesApi/BotleaguesApiServiceProvider.php @@ -4,9 +4,6 @@ namespace CamilStaps\BotleaguesApi; use \Illuminate\Database\Eloquent\ModelNotFoundException; use \Illuminate\Support\ServiceProvider; use \Illuminate\Support\Facades\App; -use \Illuminate\Support\Facades\Hash; -use \Illuminate\Support\Facades\Config; -use \Illuminate\Support\Facades\Auth; use \Dingo\Api\Facade\API; use Response; @@ -34,13 +31,12 @@ class BotleaguesApiServiceProvider extends ServiceProvider { API::error(function(ModelNotFoundException $e) { return Response::make(['error' => 'Resource not found'], 404); }); - -// var_dump(Auth::logout()); -// var_dump(Auth::check()); -// var_dump(Auth::attempt(array('email' => 'camilstaps', 'password' => 'secret'))); - -// var_dump(Config::get('auth')); -// var_dump(Config::get('botleagues-api')); + API::error(function(\Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException $e) { + return Response::make(['error' => $e->getMessage() == null ? 'Access denied' : $e->getMessage()], 404); + }); + API::error(function(\Exception $e) { + return Response::make(['error' => $e->getMessage()], 500); + }); } /** diff --git a/src/controllers/UserController.php b/src/controllers/UserController.php index 33e945d..02400e9 100644 --- a/src/controllers/UserController.php +++ b/src/controllers/UserController.php @@ -1,6 +1,7 @@ <?php namespace CamilStaps\BotleaguesApi; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\Redirect; @@ -21,21 +22,30 @@ class UserController extends BaseController { return $this->user->findOrFail($id); } - public function edit($id) { - return $this->response->noContent(); + public function update($id) { + if ($id != Auth::user()->id) { + throw new \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException(); + } + + $s = $this->user->find($id); + + if (!empty(Input::get('password'))) + $s->password = Hash::make(Input::get('password')); + + if ($s->save()) { + return $this->show($id); + } else { + throw new Dingo\Api\Exception\UpdateResourceFailedException; + } } public function store() { - try { - $this->user->email = Input::get('email'); - $this->user->password = Hash::make(Input::get('password')); - - if ($this->user->save()) { - return $this->response->created(); - } else { - throw new Dingo\Api\Exception\StoreResourceFailedException; - } - } catch (Exception $e) { + $this->user->email = Input::get('email'); + $this->user->password = Hash::make(Input::get('password')); + + if ($this->user->save()) { + return $this->response->created(); + } else { throw new Dingo\Api\Exception\StoreResourceFailedException; } } diff --git a/src/routes.php b/src/routes.php index cd04415..707bf06 100644 --- a/src/routes.php +++ b/src/routes.php @@ -1,7 +1,9 @@ <?php Route::group(array('https'), function() { Route::api(['version' => 'v1', 'protected' => true, 'providers' => 'basic'], function () { - Route::resource('bot', 'CamilStaps\BotleaguesApi\BotController'); - Route::resource('user', 'CamilStaps\BotleaguesApi\UserController'); + Route::resource('bot', 'CamilStaps\BotleaguesApi\BotController', + array('except' => ['create','edit'])); + Route::resource('user', 'CamilStaps\BotleaguesApi\UserController', + array('except' => ['create','edit'])); }); });
\ No newline at end of file |