Add user specific listing route

This commit is contained in:
Dane Everitt 2016-01-12 22:59:34 -05:00
parent 72acf06353
commit 3114c1f73e
2 changed files with 35 additions and 5 deletions

View file

@ -25,9 +25,38 @@ class UserController extends BaseController
* })
* @Response(200)
*/
public function getUsers(Request $request) {
public function getUsers(Request $request)
{
$users = Models\User::paginate(15);
return $this->response->paginator($users, new UserTransformer);
}
/**
* List Specific User
*
* Lists specific fields about a user or all fields pertaining to that user.
*
* @Get("/{id}/{fields}")
* @Versions({"v1"})
* @Parameters({
* @Parameter("id", type="integer", required=true, description="The ID of the user to get information on."),
* @Parameter("fields", type="string", required=false, description="A comma delimidated list of fields to include.")
* })
* @Response(200)
*/
public function getUserByID(Request $request, $id, $fields = null)
{
$query = Models\User::where('id', $id);
if (!is_null($fields)) {
foreach(explode(',', $fields) as $field) {
if (!empty($field)) {
$query->addSelect($field);
}
}
}
return $query->first();
}
}

View file

@ -32,13 +32,14 @@ class APIRoutes
$api->version('v1', ['middleware' => 'api.auth'], function ($api) {
$api->get('users', [
'as' => 'api.auth.validate',
'as' => 'api.users',
'uses' => 'Pterodactyl\Http\Controllers\API\UserController@getUsers'
]);
$api->get('users/{id}', function($id) {
return Models\User::findOrFail($id);
});
$api->get('users/{id}/{fields?}', [
'as' => 'api.users.view',
'uses' => 'Pterodactyl\Http\Controllers\API\UserController@getUserByID'
]);
});