-
-
Notifications
You must be signed in to change notification settings - Fork 81
Expand file tree
/
Copy pathImpostazioneResource.php
More file actions
75 lines (71 loc) · 2.48 KB
/
ImpostazioneResource.php
File metadata and controls
75 lines (71 loc) · 2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
namespace Modules\Impostazioni\API;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\Put;
use ApiPlatform\Metadata\QueryParameter;
use Models\Setting;
use Modules\Impostazioni\API\Controllers\GetImpostazioneController;
use Modules\Impostazioni\API\Controllers\ListImpostazioniController;
use Modules\Impostazioni\API\Controllers\ListSezioniImpostazioniController;
use Modules\Impostazioni\API\Controllers\UpdateImpostazioneController;
use Modules\Impostazioni\API\Models\ListSezioniImpostazioniResponse;
use Modules\Impostazioni\API\Models\UpdateImpostazioneRequest;
use Modules\Impostazioni\API\Models\UpdateImpostazioneResponse;
#[ApiResource(
shortName: 'Impostazione',
operations: [
new Get(
uriTemplate: '/impostazioni/sezioni',
controller: ListSezioniImpostazioniController::class,
output: ListSezioniImpostazioniResponse::class,
),
new GetCollection(
uriTemplate: '/impostazioni',
controller: ListImpostazioniController::class,
paginationEnabled: false,
parameters: [
'ricerca' => new QueryParameter(property: 'hydra:freetextQuery', required: false),
'sezione' => new QueryParameter(property: 'hydra:freetextQuery', required: false),
]
),
new Get(
uriTemplate: '/impostazione/{id}',
controller: GetImpostazioneController::class,
),
new Put(
uriTemplate: '/impostazione/{id}',
controller: UpdateImpostazioneController::class,
input: UpdateImpostazioneRequest::class,
output: UpdateImpostazioneResponse::class,
),
],
)]
class ImpostazioneResource
{
public function __construct(
public int $id,
public string $sezione,
public string $nome,
public ?string $valore,
public string $tipo,
public bool $editable,
public ?string $created_at,
public ?string $updated_at,
) {
}
public static function fromModel(Setting $setting)
{
return new self(
id: $setting->id,
sezione: $setting->sezione,
nome: $setting->nome,
valore: $setting->valore,
tipo: $setting->tipo,
editable: $setting->editable,
created_at: $setting->created_at,
updated_at: $setting->updated_at,
);
}
}