1616use App \Models \Foundation \Main \Repositories \ISummitAdministratorPermissionGroupRepository ;
1717use App \ModelSerializers \ISummitAttendeeTicketSerializerTypes ;
1818use App \Services \Model \ISummitAdministratorPermissionGroupService ;
19+ use App \Security \SummitScopes ;
1920use Illuminate \Support \Facades \Log ;
2021use models \exceptions \EntityNotFoundException ;
2122use models \exceptions \ValidationException ;
2425use models \utils \IEntity ;
2526use Exception ;
2627use ModelSerializers \SerializerRegistry ;
28+ use OpenApi \Attributes as OA ;
29+ use Symfony \Component \HttpFoundation \Response ;
2730use utils \Filter ;
2831use utils \FilterElement ;
2932
@@ -67,6 +70,43 @@ public function __construct
6770
6871 use GetEntity;
6972
73+ #[OA \Get(
74+ path: "/api/v1/summit-administrator-groups " ,
75+ summary: "Get all summit administrator permission groups " ,
76+ security: [['summit_admin_groups_oauth2 ' => [
77+ SummitScopes::ReadSummitAdminGroups,
78+ ]]],
79+ tags: ["SummitAdministratorPermissionGroups " ],
80+ parameters: [
81+ new OA \Parameter (
82+ name: "page " ,
83+ description: "Page number " ,
84+ in: "query " ,
85+ required: false ,
86+ schema: new OA \Schema (type: "integer " , default: 1 )
87+ ),
88+ new OA \Parameter (
89+ name: "per_page " ,
90+ description: "Items per page " ,
91+ in: "query " ,
92+ required: false ,
93+ schema: new OA \Schema (type: "integer " , default: 10 )
94+ ),
95+ new OA \Parameter (name: "filter " , description: "Filter " , in: "query " , required: false , schema: new OA \Schema (type: "string " )),
96+ new OA \Parameter (name: "order " , description: "Order " , in: "query " , required: false , schema: new OA \Schema (type: "string " )),
97+ ],
98+ responses: [
99+ new OA \Response (
100+ response: Response::HTTP_OK ,
101+ description: "OK " ,
102+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroupList " )
103+ ),
104+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
105+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
106+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
107+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
108+ ]
109+ )]
70110 function getAll ()
71111 {
72112 return $ this ->_getAll (
@@ -107,9 +147,32 @@ function () {
107147 );
108148 }
109149
110- /**
111- * @inheritDoc
112- */
150+ #[OA \Post(
151+ path: "/api/v1/summit-administrator-groups " ,
152+ summary: "Create a new summit administrator permission group " ,
153+ security: [['summit_admin_groups_oauth2 ' => [
154+ SummitScopes::WriteSummitAdminGroups,
155+ ]]],
156+ tags: ["SummitAdministratorPermissionGroups " ],
157+ requestBody: new OA \RequestBody (
158+ required: true ,
159+ content: new OA \JsonContent (
160+ ref: "#/components/schemas/CreateSummitAdministratorPermissionGroup "
161+ )
162+ ),
163+ responses: [
164+ new OA \Response (
165+ response: Response::HTTP_CREATED ,
166+ description: "Created " ,
167+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroup " )
168+ ),
169+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
170+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
171+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
172+ new OA \Response (response: Response::HTTP_PRECONDITION_FAILED , description: "Validation Error " ),
173+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
174+ ]
175+ )]
113176 function getAddValidationRules (array $ payload ): array
114177 {
115178 return [
@@ -127,25 +190,64 @@ protected function addEntity(array $payload): IEntity
127190 return $ this ->service ->create ($ payload );
128191 }
129192
130- /**
131- * @inheritDoc
132- */
133- protected function deleteEntity (int $ id ): void
134- {
135- $ this ->service ->delete ($ id );
136- }
137-
138- /**
139- * @inheritDoc
140- */
193+ #[OA \Get(
194+ path: "/api/v1/summit-administrator-groups/{id} " ,
195+ summary: "Get a summit administrator permission group by ID " ,
196+ security: [['summit_admin_groups_oauth2 ' => [
197+ SummitScopes::ReadSummitAdminGroups,
198+ ]]],
199+ tags: ["SummitAdministratorPermissionGroups " ],
200+ parameters: [
201+ new OA \Parameter (name: "id " , description: "Permission Group ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
202+ ],
203+ responses: [
204+ new OA \Response (
205+ response: Response::HTTP_OK ,
206+ description: "OK " ,
207+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroup " )
208+ ),
209+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
210+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
211+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
212+ new OA \Response (response: Response::HTTP_NOT_FOUND , description: "Not found " ),
213+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
214+ ]
215+ )]
141216 protected function getEntity (int $ id ): IEntity
142217 {
143218 return $ this ->repository ->getById ($ id );
144219 }
145220
146- /**
147- * @inheritDoc
148- */
221+ #[OA \Put(
222+ path: "/api/v1/summit-administrator-groups/{id} " ,
223+ summary: "Update a summit administrator permission group " ,
224+ security: [['summit_admin_groups_oauth2 ' => [
225+ SummitScopes::WriteSummitAdminGroups,
226+ ]]],
227+ tags: ["SummitAdministratorPermissionGroups " ],
228+ parameters: [
229+ new OA \Parameter (name: "id " , description: "Permission Group ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
230+ ],
231+ requestBody: new OA \RequestBody (
232+ required: true ,
233+ content: new OA \JsonContent (
234+ ref: "#/components/schemas/UpdateSummitAdministratorPermissionGroup "
235+ )
236+ ),
237+ responses: [
238+ new OA \Response (
239+ response: Response::HTTP_OK ,
240+ description: "OK " ,
241+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroup " )
242+ ),
243+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
244+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
245+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
246+ new OA \Response (response: Response::HTTP_NOT_FOUND , description: "Not found " ),
247+ new OA \Response (response: Response::HTTP_PRECONDITION_FAILED , description: "Validation Error " ),
248+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
249+ ]
250+ )]
149251 function getUpdateValidationRules (array $ payload ): array
150252 {
151253 return [
@@ -163,6 +265,55 @@ protected function updateEntity($id, array $payload): IEntity
163265 return $ this ->service ->update ($ id , $ payload );
164266 }
165267
268+ #[OA \Delete(
269+ path: "/api/v1/summit-administrator-groups/{id} " ,
270+ summary: "Delete a summit administrator permission group " ,
271+ security: [['summit_admin_groups_oauth2 ' => [
272+ SummitScopes::WriteSummitAdminGroups,
273+ ]]],
274+ tags: ["SummitAdministratorPermissionGroups " ],
275+ parameters: [
276+ new OA \Parameter (name: "id " , description: "Permission Group ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
277+ ],
278+ responses: [
279+ new OA \Response (response: Response::HTTP_NO_CONTENT , description: "No Content " ),
280+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
281+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
282+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
283+ new OA \Response (response: Response::HTTP_NOT_FOUND , description: "Not found " ),
284+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
285+ ]
286+ )]
287+ protected function deleteEntity (int $ id ): void
288+ {
289+ $ this ->service ->delete ($ id );
290+ }
291+
292+ #[OA \Put(
293+ path: "/api/v1/summit-administrator-groups/{id}/members/{member_id} " ,
294+ summary: "Add member to permission group " ,
295+ security: [['summit_admin_groups_oauth2 ' => [
296+ SummitScopes::WriteSummitAdminGroups,
297+ ]]],
298+ tags: ["SummitAdministratorPermissionGroups " ],
299+ parameters: [
300+ new OA \Parameter (name: "id " , description: "Permission Group ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
301+ new OA \Parameter (name: "member_id " , description: "Member ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
302+ ],
303+ responses: [
304+ new OA \Response (
305+ response: Response::HTTP_OK ,
306+ description: "OK " ,
307+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroup " )
308+ ),
309+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
310+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
311+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
312+ new OA \Response (response: Response::HTTP_NOT_FOUND , description: "Not found " ),
313+ new OA \Response (response: Response::HTTP_PRECONDITION_FAILED , description: "Validation Error " ),
314+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
315+ ]
316+ )]
166317 public function addMember ($ id , $ member_id )
167318 {
168319 try {
@@ -189,6 +340,29 @@ public function addMember($id, $member_id)
189340 }
190341 }
191342
343+ #[OA \Delete(
344+ path: "/api/v1/summit-administrator-groups/{id}/members/{member_id} " ,
345+ summary: "Remove member from permission group " ,
346+ security: [["bearer_token " => []]],
347+ tags: ["SummitAdministratorPermissionGroups " ],
348+ parameters: [
349+ new OA \Parameter (name: "id " , description: "Permission Group ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
350+ new OA \Parameter (name: "member_id " , description: "Member ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
351+ ],
352+ responses: [
353+ new OA \Response (
354+ response: Response::HTTP_OK ,
355+ description: "OK " ,
356+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroup " )
357+ ),
358+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
359+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
360+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
361+ new OA \Response (response: Response::HTTP_NOT_FOUND , description: "Not found " ),
362+ new OA \Response (response: Response::HTTP_PRECONDITION_FAILED , description: "Validation Error " ),
363+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
364+ ]
365+ )]
192366 public function removeMember ($ id , $ member_id )
193367 {
194368 try {
@@ -215,6 +389,29 @@ public function removeMember($id, $member_id)
215389 }
216390 }
217391
392+ #[OA \Put(
393+ path: "/api/v1/summit-administrator-groups/{id}/summits/{summit_id} " ,
394+ summary: "Add summit to permission group " ,
395+ security: [["bearer_token " => []]],
396+ tags: ["SummitAdministratorPermissionGroups " ],
397+ parameters: [
398+ new OA \Parameter (name: "id " , description: "Permission Group ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
399+ new OA \Parameter (name: "summit_id " , description: "Summit ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
400+ ],
401+ responses: [
402+ new OA \Response (
403+ response: Response::HTTP_OK ,
404+ description: "OK " ,
405+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroup " )
406+ ),
407+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
408+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
409+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
410+ new OA \Response (response: Response::HTTP_NOT_FOUND , description: "Not found " ),
411+ new OA \Response (response: Response::HTTP_PRECONDITION_FAILED , description: "Validation Error " ),
412+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
413+ ]
414+ )]
218415 public function addSummit ($ id , $ summit_id )
219416 {
220417 try {
@@ -241,6 +438,29 @@ public function addSummit($id, $summit_id)
241438 }
242439 }
243440
441+ #[OA \Delete(
442+ path: "/api/v1/summit-administrator-groups/{id}/summits/{summit_id} " ,
443+ summary: "Remove summit from permission group " ,
444+ security: [["bearer_token " => []]],
445+ tags: ["SummitAdministratorPermissionGroups " ],
446+ parameters: [
447+ new OA \Parameter (name: "id " , description: "Permission Group ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
448+ new OA \Parameter (name: "summit_id " , description: "Summit ID " , in: "path " , required: true , schema: new OA \Schema (type: "integer " )),
449+ ],
450+ responses: [
451+ new OA \Response (
452+ response: Response::HTTP_OK ,
453+ description: "OK " ,
454+ content: new OA \JsonContent (ref: "#/components/schemas/SummitAdministratorPermissionGroup " )
455+ ),
456+ new OA \Response (response: Response::HTTP_BAD_REQUEST , description: "Bad Request " ),
457+ new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: "Unauthorized " ),
458+ new OA \Response (response: Response::HTTP_FORBIDDEN , description: "Forbidden " ),
459+ new OA \Response (response: Response::HTTP_NOT_FOUND , description: "Not found " ),
460+ new OA \Response (response: Response::HTTP_PRECONDITION_FAILED , description: "Validation Error " ),
461+ new OA \Response (response: Response::HTTP_INTERNAL_SERVER_ERROR , description: "Server Error " ),
462+ ]
463+ )]
244464 public function removeSummit ($ id , $ summit_id )
245465 {
246466 try {
0 commit comments