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) * @Response(200)
*/ */
public function getUsers(Request $request) { public function getUsers(Request $request)
{
$users = Models\User::paginate(15); $users = Models\User::paginate(15);
return $this->response->paginator($users, new UserTransformer); 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->version('v1', ['middleware' => 'api.auth'], function ($api) {
$api->get('users', [ $api->get('users', [
'as' => 'api.auth.validate', 'as' => 'api.users',
'uses' => 'Pterodactyl\Http\Controllers\API\UserController@getUsers' 'uses' => 'Pterodactyl\Http\Controllers\API\UserController@getUsers'
]); ]);
$api->get('users/{id}', function($id) { $api->get('users/{id}/{fields?}', [
return Models\User::findOrFail($id); 'as' => 'api.users.view',
}); 'uses' => 'Pterodactyl\Http\Controllers\API\UserController@getUserByID'
]);
}); });