Skip to content

Commit 2a194d4

Browse files
committed
feat: Extend Swagger Coverage for controller OAuth2SummitPresentationActionTypeApiController
1 parent c571b14 commit 2a194d4

File tree

2 files changed

+110
-17
lines changed

2 files changed

+110
-17
lines changed

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

Lines changed: 84 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
* limitations under the License.
1616
**/
1717

18+
use App\Models\Foundation\Main\IGroup;
1819
use App\Models\Foundation\Summit\Repositories\ISummitSponsorshipTypeRepository;
1920
use App\ModelSerializers\SerializerUtils;
21+
use App\Security\SummitScopes;
2022
use App\Services\Model\ISummitSponsorshipTypeService;
2123
use Illuminate\Http\Request as LaravelRequest;
2224
use Illuminate\Http\Response;
@@ -77,11 +79,21 @@ public function __construct
7779
#[OA\Get(
7880
path: '/api/v1/summits/{id}/sponsorships-types',
7981
summary: 'Get all sponsorship types for a summit',
80-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
81-
tags: ['Summits', 'Sponsorship Types'],
82+
x: [
83+
'required-groups' => [
84+
IGroup::SuperAdmins,
85+
IGroup::Administrators,
86+
IGroup::SummitAdministrators,
87+
]
88+
],
89+
security: [['sponsorship_types_oauth2' => [
90+
SummitScopes::ReadSummitData,
91+
SummitScopes::ReadAllSummitData,
92+
]]],
93+
tags: ['Summits Sponsorship Types'],
8294
parameters: [
83-
new OA\Parameter(ref: '#/components/parameters/page'),
84-
new OA\Parameter(ref: '#/components/parameters/per_page'),
95+
new OA\Parameter(name: 'page', in: 'query', required: false, description: 'Page number', schema: new OA\Schema(type: 'integer', default: 1)),
96+
new OA\Parameter(name: 'per_page', in: 'query', required: false, description: 'Items per page', schema: new OA\Schema(type: 'integer', default: 10, maximum: 100)),
8597
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
8698
new OA\Parameter(name: 'filter', in: 'query', description: 'Filter by name, label, or size (name=@value, label==value, size=@value)', schema: new OA\Schema(type: 'string')),
8799
new OA\Parameter(name: 'order', in: 'query', description: 'Order by: +/-id, +/-name, +/-order, +/-label, +/-size', schema: new OA\Schema(type: 'string')),
@@ -106,8 +118,17 @@ public function getAllBySummit($summit_id){
106118
#[OA\Post(
107119
path: '/api/v1/summits/{id}/sponsorships-types',
108120
summary: 'Create a new sponsorship type',
109-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
110-
tags: ['Summits', 'Sponsorship Types'],
121+
x: [
122+
'required-groups' => [
123+
IGroup::SuperAdmins,
124+
IGroup::Administrators,
125+
IGroup::SummitAdministrators,
126+
]
127+
],
128+
security: [['sponsorship_types_oauth2' => [
129+
SummitScopes::WriteSummitData,
130+
]]],
131+
tags: ['Summits Sponsorship Types'],
111132
parameters: [
112133
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
113134
],
@@ -136,8 +157,18 @@ public function add($summit_id){
136157
#[OA\Get(
137158
path: '/api/v1/summits/{id}/sponsorships-types/{type_id}',
138159
summary: 'Get a sponsorship type by ID',
139-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
140-
tags: ['Summits', 'Sponsorship Types'],
160+
x: [
161+
'required-groups' => [
162+
IGroup::SuperAdmins,
163+
IGroup::Administrators,
164+
IGroup::SummitAdministrators,
165+
]
166+
],
167+
security: [['sponsorship_types_oauth2' => [
168+
SummitScopes::ReadSummitData,
169+
SummitScopes::ReadAllSummitData,
170+
]]],
171+
tags: ['Summits Sponsorship Types'],
141172
parameters: [
142173
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
143174
new OA\Parameter(name: 'type_id', in: 'path', required: true, description: 'Sponsorship Type ID', schema: new OA\Schema(type: 'integer')),
@@ -162,8 +193,17 @@ public function get($summit_id, $type_id){
162193
#[OA\Put(
163194
path: '/api/v1/summits/{id}/sponsorships-types/{type_id}',
164195
summary: 'Update a sponsorship type',
165-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
166-
tags: ['Summits', 'Sponsorship Types'],
196+
x: [
197+
'required-groups' => [
198+
IGroup::SuperAdmins,
199+
IGroup::Administrators,
200+
IGroup::SummitAdministrators,
201+
]
202+
],
203+
security: [['sponsorship_types_oauth2' => [
204+
SummitScopes::WriteSummitData,
205+
]]],
206+
tags: ['Summits Sponsorship Types'],
167207
parameters: [
168208
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
169209
new OA\Parameter(name: 'type_id', in: 'path', required: true, description: 'Sponsorship Type ID', schema: new OA\Schema(type: 'integer')),
@@ -193,8 +233,17 @@ public function update($summit_id, $type_id){
193233
#[OA\Delete(
194234
path: '/api/v1/summits/{id}/sponsorships-types/{type_id}',
195235
summary: 'Delete a sponsorship type',
196-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
197-
tags: ['Summits', 'Sponsorship Types'],
236+
x: [
237+
'required-groups' => [
238+
IGroup::SuperAdmins,
239+
IGroup::Administrators,
240+
IGroup::SummitAdministrators,
241+
]
242+
],
243+
security: [['sponsorship_types_oauth2' => [
244+
SummitScopes::WriteSummitData,
245+
]]],
246+
tags: ['Summits Sponsorship Types'],
198247
parameters: [
199248
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
200249
new OA\Parameter(name: 'type_id', in: 'path', required: true, description: 'Sponsorship Type ID', schema: new OA\Schema(type: 'integer')),
@@ -330,8 +379,17 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I
330379
#[OA\Post(
331380
path: '/api/v1/summits/{id}/sponsorships-types/{type_id}/badge-image',
332381
summary: 'Upload a badge image for a sponsorship type',
333-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
334-
tags: ['Summits', 'Sponsorship Types'],
382+
x: [
383+
'required-groups' => [
384+
IGroup::SuperAdmins,
385+
IGroup::Administrators,
386+
IGroup::SummitAdministrators,
387+
]
388+
],
389+
security: [['sponsorship_types_oauth2' => [
390+
SummitScopes::WriteSummitData,
391+
]]],
392+
tags: ['Summits Sponsorship Types'],
335393
parameters: [
336394
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
337395
new OA\Parameter(name: 'type_id', in: 'path', required: true, description: 'Sponsorship Type ID', schema: new OA\Schema(type: 'integer')),
@@ -401,8 +459,17 @@ public function addBadgeImage(LaravelRequest $request, $summit_id, $type_id){
401459
#[OA\Delete(
402460
path: '/api/v1/summits/{id}/sponsorships-types/{type_id}/badge-image',
403461
summary: 'Remove the badge image from a sponsorship type',
404-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
405-
tags: ['Summits', 'Sponsorship Types'],
462+
x: [
463+
'required-groups' => [
464+
IGroup::SuperAdmins,
465+
IGroup::Administrators,
466+
IGroup::SummitAdministrators,
467+
]
468+
],
469+
security: [['sponsorship_types_oauth2' => [
470+
SummitScopes::WriteSummitData,
471+
]]],
472+
tags: ['Summits Sponsorship Types'],
406473
parameters: [
407474
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
408475
new OA\Parameter(name: 'type_id', in: 'path', required: true, description: 'Sponsorship Type ID', schema: new OA\Schema(type: 'integer')),
@@ -428,4 +495,4 @@ public function removeBadgeImage($summit_id, $type_id){
428495

429496
});
430497
}
431-
}
498+
}
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: 'sponsorship_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 SponsorshipTypesAuthSchema{}

0 commit comments

Comments
 (0)