Skip to content

Commit 69dfd38

Browse files
committed
Finalize API routes
1 parent f0c3f6f commit 69dfd38

File tree

4 files changed

+93
-6
lines changed

4 files changed

+93
-6
lines changed

app/Http/Controllers/API/Admin/ServerController.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public function index(Request $request)
6161
* Controller to handle returning information on a single server.
6262
*
6363
* @param \Illuminate\Http\Request $request
64+
* @param int $id
6465
* @return array
6566
*/
6667
public function view(Request $request, $id)
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?php
2+
/**
3+
* Pterodactyl - Panel
4+
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all
14+
* copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
25+
namespace Pterodactyl\Http\Controllers\API\Admin;
26+
27+
use Fractal;
28+
use Illuminate\Http\Request;
29+
use Pterodactyl\Models\Service;
30+
use Pterodactyl\Http\Controllers\Controller;
31+
use Pterodactyl\Transformers\Admin\ServiceTransformer;
32+
33+
class ServiceController extends Controller
34+
{
35+
/**
36+
* Controller to handle returning all locations on the system.
37+
*
38+
* @param \Illuminate\Http\Request $request
39+
* @return array
40+
*/
41+
public function index(Request $request)
42+
{
43+
$this->authorize('service-list', $request->apiKey());
44+
45+
return Fractal::create()
46+
->collection(Service::all())
47+
->transformWith(new ServiceTransformer($request))
48+
->withResourceName('service')
49+
->toArray();
50+
}
51+
52+
/**
53+
* Controller to handle returning information on a single server.
54+
*
55+
* @param \Illuminate\Http\Request $request
56+
* @param int $id
57+
* @return array
58+
*/
59+
public function view(Request $request, $id)
60+
{
61+
$this->authorize('service-view', $request->apiKey());
62+
63+
$service = Service::findOrFail($id);
64+
$fractal = Fractal::create()->item($service);
65+
66+
if ($request->input('include')) {
67+
$fractal->parseIncludes(explode(',', $request->input('include')));
68+
}
69+
70+
return $fractal->transformWith(new ServiceTransformer($request))
71+
->withResourceName('service')
72+
->toArray();
73+
}
74+
}

app/Http/Controllers/API/Admin/UserController.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
use Pterodactyl\Repositories\UserRepository;
3333
use Pterodactyl\Transformers\Admin\UserTransformer;
3434
use Pterodactyl\Exceptions\DisplayValidationException;
35+
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
3536

3637
class UserController extends Controller
3738
{
@@ -44,14 +45,12 @@ class UserController extends Controller
4445
public function index(Request $request)
4546
{
4647
$this->authorize('user-list', $request->apiKey());
48+
$users = User::paginate(50);
4749

48-
$fractal = Fractal::create()->collection(User::all());
49-
if ($request->input('include')) {
50-
$fractal->parseIncludes(explode(',', $request->input('include')));
51-
}
52-
53-
return $fractal->transformWith(new UserTransformer($request))
50+
return Fractal::create()->collection($users)
51+
->transformWith(new UserTransformer($request))
5452
->withResourceName('user')
53+
->paginateWith(new IlluminatePaginatorAdapter($users))
5554
->toArray();
5655
}
5756

routes/api-admin.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,16 @@
9797

9898
Route::delete('/{id}', 'UserController@delete');
9999
});
100+
101+
/*
102+
|--------------------------------------------------------------------------
103+
| Service Controller Routes
104+
|--------------------------------------------------------------------------
105+
|
106+
| Endpoint: /api/admin/services
107+
|
108+
*/
109+
Route::group(['prefix' => '/services'], function () {
110+
Route::get('/', 'ServiceController@index');
111+
Route::get('/{id}', 'ServiceController@view');
112+
});

0 commit comments

Comments
 (0)