Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Http/Controllers/Api/Client/Servers/ServerController.php
10280 views
1
<?php
2
3
namespace Pterodactyl\Http\Controllers\Api\Client\Servers;
4
5
use Pterodactyl\Models\Server;
6
use Pterodactyl\Transformers\Api\Client\ServerTransformer;
7
use Pterodactyl\Services\Servers\GetUserPermissionsService;
8
use Pterodactyl\Http\Controllers\Api\Client\ClientApiController;
9
use Pterodactyl\Http\Requests\Api\Client\Servers\GetServerRequest;
10
11
class ServerController extends ClientApiController
12
{
13
/**
14
* ServerController constructor.
15
*/
16
public function __construct(private GetUserPermissionsService $permissionsService)
17
{
18
parent::__construct();
19
}
20
21
/**
22
* Transform an individual server into a response that can be consumed by a
23
* client using the API.
24
*/
25
public function index(GetServerRequest $request, Server $server): array
26
{
27
return $this->fractal->item($server)
28
->transformWith($this->getTransformer(ServerTransformer::class))
29
->addMeta([
30
'is_server_owner' => $request->user()->id === $server->owner_id,
31
'user_permissions' => $this->permissionsService->handle($server, $request->user()),
32
])
33
->toArray();
34
}
35
}
36
37