name('User') ->model(User::class) ->expectsJsonData() ->transformer(UserTransformer::class) ->itemKey('user') ->collectionKey('users') ->deny(AclRoles::UNAUTHORIZED, AclRoles::USER) ->handler(UserController::class); $this ->endpoint(ApiEndpoint::all() ->allow(AclRoles::USER) ->name('all') ->description('Возвращает всех зарегистрированных пользователей') ); $this ->endpoint(ApiEndpoint::remove() ->name('remove') ->description('Удаление пользователя') ->allow(AclRoles::USER) ->exampleResponse([ "result" => "OK" ]) ) ; $this ->endpoint(ApiEndpoint::update() ->name('update') ->description('Изменение данных пользователя') ->allow(AclRoles::ADMINISTRATOR) ->deny(AclRoles::MANAGER) ->exampleRequest([ 'role' => 'Manager' ]) ->exampleResponse([ "result" => "OK", "user" => [ "id" => 101, "username" => "qwerty", "email" => "1a23@awd.awd", "role" => "Manager", "createdAt" => "2017-02-16 19:05:18", "updatedAt" => "2017-03-21 14:31:48" ] ]) ) ; $this ->endpoint(ApiEndpoint::factory('/me', HttpMethods::GET, 'meAction') ->name('me') ->description('Возвращает текущего залогиненного пользователя') ->allow(AclRoles::USER) ); $this ->endpoint(ApiEndpoint::factory('/authenticate', HttpMethods::POST, 'authenticateAction') ->name('authenticate') ->description('Авторизация пользователя через BasicAuth и возвращает токен доступа') ->allow(AclRoles::UNAUTHORIZED) ->deny(AclRoles::AUTHORIZED) ->exampleResponse([ 'data' => [ 'token' => 'co126bbm40wqp41i3bo7pj1gfsvt9lp6', 'expires' => 1451139067, "user" => [ "id" => 1, "username" => "demo", "email" => "test@example.com", "role" => "User", "createdAt" => "2015-12-28 16:20:58", "updatedAt" => null ] ] ]) ); $this ->endpoint(ApiEndpoint::factory('/', HttpMethods::POST, 'registerAction') ->name('register') ->description('Регистрация нового пользователя') ->allow(AclRoles::UNAUTHORIZED) ->deny(AclRoles::AUTHORIZED) ->exampleResponse([ "result" => "OK", "user" => [ "id" => "95", "username" => "MyLogin", "email" => "myGmail@gmail.com", "role" => "User", "createdAt" => "2017-02-16 17:57:52", "updatedAt" => "2017-02-16 17:57:52" ] ]) ); } }