Skip to content

Commit c920fbb

Browse files
committed
feat: Extend Swagger Coverage for controller OAuth2SummitPresentationActionTypeApiController
1 parent cfb7d14 commit c920fbb

2 files changed

Lines changed: 99 additions & 7 deletions

File tree

app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTaxTypeApiController.php

Lines changed: 73 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
**/
17+
use App\Models\Foundation\Main\IGroup;
1718
use App\Models\Foundation\Summit\Repositories\ISummitTaxTypeRepository;
19+
use App\Security\SummitScopes;
1820
use App\Services\Model\ISummitTaxTypeService;
1921
use models\exceptions\EntityNotFoundException;
2022
use models\exceptions\ValidationException;
@@ -57,7 +59,10 @@ final class OAuth2SummitTaxTypeApiController extends OAuth2ProtectedController
5759
#[OA\Get(
5860
path: '/api/v1/summits/{id}/tax-types',
5961
summary: 'Get all tax types for a summit',
60-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
62+
security: [['tax_types_oauth2' => [
63+
SummitScopes::ReadSummitData,
64+
SummitScopes::ReadAllSummitData,
65+
]]],
6166
tags: ['Summits', 'Tax Types'],
6267
parameters: [
6368
new OA\Parameter(ref: '#/components/parameters/page'),
@@ -87,7 +92,17 @@ public function getAllBySummit($summit_id){
8792
#[OA\Post(
8893
path: '/api/v1/summits/{id}/tax-types',
8994
summary: 'Create a new tax type',
90-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
95+
security: [['tax_types_oauth2' => [
96+
SummitScopes::WriteSummitData,
97+
]]],
98+
x: [
99+
'required-groups' => [
100+
IGroup::SuperAdmins,
101+
IGroup::Administrators,
102+
IGroup::SummitAdministrators,
103+
IGroup::SummitRegistrationAdmins,
104+
]
105+
],
91106
tags: ['Summits', 'Tax Types'],
92107
parameters: [
93108
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -117,7 +132,18 @@ public function add($summit_id){
117132
#[OA\Get(
118133
path: '/api/v1/summits/{id}/tax-types/{tax_id}',
119134
summary: 'Get a tax type by ID',
120-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
135+
security: [['tax_types_oauth2' => [
136+
SummitScopes::ReadSummitData,
137+
SummitScopes::ReadAllSummitData,
138+
]]],
139+
x: [
140+
'required-groups' => [
141+
IGroup::SuperAdmins,
142+
IGroup::Administrators,
143+
IGroup::SummitAdministrators,
144+
IGroup::SummitRegistrationAdmins,
145+
]
146+
],
121147
tags: ['Summits', 'Tax Types'],
122148
parameters: [
123149
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -143,7 +169,17 @@ public function get($summit_id, $tax_id){
143169
#[OA\Put(
144170
path: '/api/v1/summits/{id}/tax-types/{tax_id}',
145171
summary: 'Update a tax type',
146-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
172+
security: [['tax_types_oauth2' => [
173+
SummitScopes::WriteSummitData,
174+
]]],
175+
x: [
176+
'required-groups' => [
177+
IGroup::SuperAdmins,
178+
IGroup::Administrators,
179+
IGroup::SummitAdministrators,
180+
IGroup::SummitRegistrationAdmins,
181+
]
182+
],
147183
tags: ['Summits', 'Tax Types'],
148184
parameters: [
149185
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -174,7 +210,17 @@ public function update($summit_id, $tax_id){
174210
#[OA\Delete(
175211
path: '/api/v1/summits/{id}/tax-types/{tax_id}',
176212
summary: 'Delete a tax type',
177-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
213+
security: [['tax_types_oauth2' => [
214+
SummitScopes::WriteSummitData,
215+
]]],
216+
x: [
217+
'required-groups' => [
218+
IGroup::SuperAdmins,
219+
IGroup::Administrators,
220+
IGroup::SummitAdministrators,
221+
IGroup::SummitRegistrationAdmins,
222+
]
223+
],
178224
tags: ['Summits', 'Tax Types'],
179225
parameters: [
180226
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -310,7 +356,17 @@ protected function deleteChild(Summit $summit, $child_id): void
310356
#[OA\Put(
311357
path: '/api/v1/summits/{id}/tax-types/{tax_id}/ticket-types/{ticket_type_id}',
312358
summary: 'Add a tax type to a ticket type',
313-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
359+
security: [['tax_types_oauth2' => [
360+
SummitScopes::WriteSummitData,
361+
]]],
362+
x: [
363+
'required-groups' => [
364+
IGroup::SuperAdmins,
365+
IGroup::Administrators,
366+
IGroup::SummitAdministrators,
367+
IGroup::SummitRegistrationAdmins,
368+
]
369+
],
314370
tags: ['Summits', 'Tax Types'],
315371
parameters: [
316372
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -364,7 +420,17 @@ public function addTaxToTicketType($summit_id, $tax_id, $ticket_type_id){
364420
#[OA\Delete(
365421
path: '/api/v1/summits/{id}/tax-types/{tax_id}/ticket-types/{ticket_type_id}',
366422
summary: 'Remove a tax type from a ticket type',
367-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
423+
security: [['tax_types_oauth2' => [
424+
SummitScopes::WriteSummitData,
425+
]]],
426+
x: [
427+
'required-groups' => [
428+
IGroup::SuperAdmins,
429+
IGroup::Administrators,
430+
IGroup::SummitAdministrators,
431+
IGroup::SummitRegistrationAdmins,
432+
]
433+
],
368434
tags: ['Summits', 'Tax Types'],
369435
parameters: [
370436
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace App\Swagger\Security;
4+
5+
use App\Security\SummitScopes;
6+
use OpenApi\Attributes as OA;
7+
8+
#[
9+
OA\SecurityScheme(
10+
type: 'oauth2',
11+
securityScheme: 'tax_types_oauth2',
12+
flows: [
13+
new OA\Flow(
14+
authorizationUrl: L5_SWAGGER_CONST_AUTH_URL,
15+
tokenUrl: L5_SWAGGER_CONST_TOKEN_URL,
16+
flow: 'authorizationCode',
17+
scopes: [
18+
SummitScopes::ReadSummitData => 'Read Summit Data',
19+
SummitScopes::ReadAllSummitData => 'Read All Summit Data',
20+
SummitScopes::WriteSummitData => 'Write Summit Data',
21+
],
22+
),
23+
],
24+
)
25+
]
26+
class TaxTypesAuthSchema{}

0 commit comments

Comments
 (0)