Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Transformers/Api/Application/ServerVariableTransformer.php
10280 views
1
<?php
2
3
namespace Pterodactyl\Transformers\Api\Application;
4
5
use League\Fractal\Resource\Item;
6
use Pterodactyl\Models\EggVariable;
7
use Pterodactyl\Models\ServerVariable;
8
use League\Fractal\Resource\NullResource;
9
use Pterodactyl\Services\Acl\Api\AdminAcl;
10
11
class ServerVariableTransformer extends BaseTransformer
12
{
13
/**
14
* List of resources that can be included.
15
*/
16
protected array $availableIncludes = ['parent'];
17
18
/**
19
* Return the resource name for the JSONAPI output.
20
*/
21
public function getResourceName(): string
22
{
23
return ServerVariable::RESOURCE_NAME;
24
}
25
26
/**
27
* Return a generic transformed server variable array.
28
*/
29
public function transform(EggVariable $variable): array
30
{
31
return $variable->toArray();
32
}
33
34
/**
35
* Return the parent service variable data.
36
*
37
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
38
*/
39
public function includeParent(EggVariable $variable): Item|NullResource
40
{
41
if (!$this->authorize(AdminAcl::RESOURCE_EGGS)) {
42
return $this->null();
43
}
44
45
$variable->loadMissing('variable');
46
47
return $this->item($variable->getRelation('variable'), $this->makeTransformer(EggVariableTransformer::class), 'variable');
48
}
49
}
50
51