Skip to content

Commit 3114c1f

Browse files
committed
Add user specific listing route
1 parent 72acf06 commit 3114c1f

File tree

2 files changed

+35
-5
lines changed

2 files changed

+35
-5
lines changed

app/Http/Controllers/API/UserController.php

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,38 @@ class UserController extends BaseController
2525
* })
2626
* @Response(200)
2727
*/
28-
public function getUsers(Request $request) {
28+
public function getUsers(Request $request)
29+
{
2930
$users = Models\User::paginate(15);
3031
return $this->response->paginator($users, new UserTransformer);
3132
}
3233

34+
/**
35+
* List Specific User
36+
*
37+
* Lists specific fields about a user or all fields pertaining to that user.
38+
*
39+
* @Get("/{id}/{fields}")
40+
* @Versions({"v1"})
41+
* @Parameters({
42+
* @Parameter("id", type="integer", required=true, description="The ID of the user to get information on."),
43+
* @Parameter("fields", type="string", required=false, description="A comma delimidated list of fields to include.")
44+
* })
45+
* @Response(200)
46+
*/
47+
public function getUserByID(Request $request, $id, $fields = null)
48+
{
49+
$query = Models\User::where('id', $id);
50+
51+
if (!is_null($fields)) {
52+
foreach(explode(',', $fields) as $field) {
53+
if (!empty($field)) {
54+
$query->addSelect($field);
55+
}
56+
}
57+
}
58+
59+
return $query->first();
60+
}
61+
3362
}

app/Http/Routes/APIRoutes.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@ public function map(Router $router) {
3232
$api->version('v1', ['middleware' => 'api.auth'], function ($api) {
3333

3434
$api->get('users', [
35-
'as' => 'api.auth.validate',
35+
'as' => 'api.users',
3636
'uses' => 'Pterodactyl\Http\Controllers\API\UserController@getUsers'
3737
]);
3838

39-
$api->get('users/{id}', function($id) {
40-
return Models\User::findOrFail($id);
41-
});
39+
$api->get('users/{id}/{fields?}', [
40+
'as' => 'api.users.view',
41+
'uses' => 'Pterodactyl\Http\Controllers\API\UserController@getUserByID'
42+
]);
4243

4344

4445
});

0 commit comments

Comments
 (0)