1313 * limitations under the License.
1414 **/
1515
16+ use App \Models \Foundation \Main \IGroup ;
1617use App \ModelSerializers \SerializerUtils ;
18+ use App \Security \MemberScopes ;
1719use App \Services \Model \IMemberService ;
1820use Illuminate \Http \Response ;
1921use models \exceptions \EntityNotFoundException ;
@@ -59,9 +61,9 @@ public function __construct
5961
6062 #[OA \Get(
6163 path: '/api/public/v1/members ' ,
64+ operationId: 'getAllMembersPublic ' ,
6265 summary: 'Get all members ' ,
6366 description: 'Returns a paginated list of members with optional filtering, sorting and search capabilities ' ,
64- security: [['bearer ' => []]],
6567 tags: ['Members (Public) ' ],
6668 parameters: [
6769 new OA \Parameter (name: 'page ' , in: 'query ' , required: false , description: 'Page number ' , schema: new OA \Schema (type: 'integer ' , default: 1 )),
@@ -82,10 +84,13 @@ public function __construct
8284 )]
8385 #[OA \Get(
8486 path: '/api/v1/members ' ,
87+ operationId: 'getAllMembers ' ,
8588 summary: 'Get all members ' ,
8689 description: 'Returns a paginated list of members with optional filtering, sorting and search capabilities ' ,
87- security: [['bearer ' => []]],
88- tags: ['members ' ],
90+ tags: ['Members ' ],
91+ security: [['members_oauth2 ' => [
92+ MemberScopes::ReadMemberData,
93+ ]]],
8994 parameters: [
9095 new OA \Parameter (name: 'page ' , in: 'query ' , required: false , description: 'Page number ' , schema: new OA \Schema (type: 'integer ' , default: 1 )),
9196 new OA \Parameter (name: 'per_page ' , in: 'query ' , required: false , description: 'Items per page ' , schema: new OA \Schema (type: 'integer ' , default: 10 , maximum: 100 )),
@@ -171,11 +176,11 @@ function () use ($current_member, $application_type) {
171176 }
172177
173178 #[OA \Get(
174- path: '/api/v1/members/companies ' ,
179+ path: '/api/public/v1/members/all/companies ' ,
180+ operationId: 'getAllMemberCompanies ' ,
175181 summary: 'Get all member companies ' ,
176182 description: 'Returns a paginated list of companies from member profiles ' ,
177- security: [['bearer ' => []]],
178- tags: ['members ' ],
183+ tags: ['Members (Public) ' ],
179184 parameters: [
180185 new OA \Parameter (name: 'page ' , in: 'query ' , required: false , description: 'Page number ' , schema: new OA \Schema (type: 'integer ' , default: 1 )),
181186 new OA \Parameter (name: 'per_page ' , in: 'query ' , required: false , description: 'Items per page ' , schema: new OA \Schema (type: 'integer ' , default: 10 , maximum: 100 )),
@@ -230,10 +235,13 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) {
230235 }
231236 #[OA \Get(
232237 path: '/api/v1/members/me ' ,
238+ operationId: 'getCurrentMember ' ,
233239 summary: 'Get current authenticated member ' ,
234240 description: 'Returns the profile of the currently authenticated member ' ,
235- security: [['bearer ' => []]],
236- tags: ['members ' ],
241+ tags: ['Members ' ],
242+ security: [['members_oauth2 ' => [
243+ MemberScopes::ReadMyMemberData,
244+ ]]],
237245 parameters: [
238246 new OA \Parameter (name: 'expand ' , in: 'query ' , required: false , description: 'Expand relationships (groups, affiliations, all_affiliations, ccla_teams, election_applications, candidate_profile, election_nominations) ' , schema: new OA \Schema (type: 'string ' )),
239247 ],
@@ -275,10 +283,13 @@ public function getMyMember()
275283
276284 #[OA \Put(
277285 path: '/api/v1/members/me ' ,
286+ operationId: 'updateCurrentMember ' ,
278287 summary: 'Update current authenticated member ' ,
279288 description: 'Updates the profile of the currently authenticated member ' ,
280- security: [['bearer ' => []]],
281- tags: ['members ' ],
289+ tags: ['Members ' ],
290+ security: [['members_oauth2 ' => [
291+ MemberScopes::WriteMyMemberData,
292+ ]]],
282293 requestBody: new OA \RequestBody (
283294 required: true ,
284295 content: new OA \JsonContent (ref: '#/components/schemas/MemberUpdateRequest ' )
@@ -326,11 +337,11 @@ public function updateMyMember()
326337 }
327338
328339 #[OA \Get(
329- path: '/api/v1/members/{member_id} ' ,
340+ path: '/api/public/v1/members/{member_id} ' ,
341+ operationId: 'getMemberById ' ,
330342 summary: 'Get member by ID ' ,
331343 description: 'Returns a member profile by ID ' ,
332- security: [['bearer ' => []]],
333- tags: ['members ' ],
344+ tags: ['Members (Public) ' ],
334345 parameters: [
335346 new OA \Parameter (name: 'member_id ' , in: 'path ' , required: true , description: 'Member ID ' , schema: new OA \Schema (type: 'integer ' )),
336347 new OA \Parameter (name: 'expand ' , in: 'query ' , required: false , description: 'Expand relationships ' , schema: new OA \Schema (type: 'string ' )),
@@ -376,10 +387,13 @@ public function getById($member_id)
376387
377388 #[OA \Get(
378389 path: '/api/v1/members/me/affiliations ' ,
390+ operationId: 'getCurrentMemberAffiliations ' ,
379391 summary: 'Get current member affiliations ' ,
380392 description: 'Returns all affiliations for the currently authenticated member ' ,
381- security: [['bearer ' => []]],
382- tags: ['members ' ],
393+ tags: ['Members ' ],
394+ security: [['members_oauth2 ' => [
395+ MemberScopes::ReadMyMemberData,
396+ ]]],
383397 parameters: [
384398 new OA \Parameter (name: 'expand ' , in: 'query ' , required: false , description: 'Expand relationships (organization) ' , schema: new OA \Schema (type: 'string ' )),
385399 ],
@@ -400,10 +414,20 @@ public function getMyMemberAffiliations()
400414
401415 #[OA \Get(
402416 path: '/api/v1/members/{member_id}/affiliations ' ,
417+ operationId: 'getMemberAffiliations ' ,
403418 summary: 'Get member affiliations ' ,
404419 description: 'Returns all affiliations for a specific member ' ,
405- security: [['bearer ' => []]],
406- tags: ['members ' ],
420+ tags: ['Members ' ],
421+ x: [
422+ 'required-groups ' => [
423+ IGroup::SuperAdmins,
424+ IGroup::Administrators,
425+ IGroup::SummitAdministrators,
426+ ]
427+ ],
428+ security: [['members_oauth2 ' => [
429+ MemberScopes::ReadMemberData,
430+ ]]],
407431 parameters: [
408432 new OA \Parameter (name: 'member_id ' , in: 'path ' , required: true , description: 'Member ID ' , schema: new OA \Schema (type: 'integer ' )),
409433 new OA \Parameter (name: 'expand ' , in: 'query ' , required: false , description: 'Expand relationships (organization) ' , schema: new OA \Schema (type: 'string ' )),
@@ -450,10 +474,13 @@ public function getMemberAffiliations($member_id)
450474
451475 #[OA \Post(
452476 path: '/api/v1/members/me/affiliations ' ,
477+ operationId: 'addCurrentMemberAffiliation ' ,
453478 summary: 'Add affiliation to current member ' ,
454479 description: 'Creates a new affiliation for the currently authenticated member ' ,
455- security: [['bearer ' => []]],
456- tags: ['members ' ],
480+ tags: ['Members ' ],
481+ security: [['members_oauth2 ' => [
482+ MemberScopes::WriteMyMemberData,
483+ ]]],
457484 requestBody: new OA \RequestBody (
458485 required: true ,
459486 content: new OA \JsonContent (ref: '#/components/schemas/AffiliationRequest ' )
@@ -476,10 +503,20 @@ public function addMyAffiliation()
476503
477504 #[OA \Post(
478505 path: '/api/v1/members/{member_id}/affiliations ' ,
506+ operationId: 'addMemberAffiliation ' ,
479507 summary: 'Add affiliation to member ' ,
480508 description: 'Creates a new affiliation for a specific member ' ,
481- security: [['bearer ' => []]],
482- tags: ['members ' ],
509+ tags: ['Members ' ],
510+ x: [
511+ 'required-groups ' => [
512+ IGroup::SuperAdmins,
513+ IGroup::Administrators,
514+ IGroup::SummitAdministrators,
515+ ]
516+ ],
517+ security: [['members_oauth2 ' => [
518+ MemberScopes::WriteMemberData,
519+ ]]],
483520 parameters: [
484521 new OA \Parameter (name: 'member_id ' , in: 'path ' , required: true , description: 'Member ID ' , schema: new OA \Schema (type: 'integer ' )),
485522 ],
@@ -531,10 +568,13 @@ public function addAffiliation($member_id)
531568
532569 #[OA \Put(
533570 path: '/api/v1/members/me/affiliations/{affiliation_id} ' ,
571+ operationId: 'updateCurrentMemberAffiliation ' ,
534572 summary: 'Update current member affiliation ' ,
535573 description: 'Updates an affiliation for the currently authenticated member ' ,
536- security: [['bearer ' => []]],
537- tags: ['members ' ],
574+ tags: ['Members ' ],
575+ security: [['members_oauth2 ' => [
576+ MemberScopes::WriteMyMemberData,
577+ ]]],
538578 parameters: [
539579 new OA \Parameter (name: 'affiliation_id ' , in: 'path ' , required: true , description: 'Affiliation ID ' , schema: new OA \Schema (type: 'integer ' )),
540580 ],
@@ -560,10 +600,20 @@ public function updateMyAffiliation($affiliation_id)
560600
561601 #[OA \Put(
562602 path: '/api/v1/members/{member_id}/affiliations/{affiliation_id} ' ,
603+ operationId: 'updateMemberAffiliation ' ,
563604 summary: 'Update member affiliation ' ,
564605 description: 'Updates an affiliation for a specific member ' ,
565- security: [['bearer ' => []]],
566- tags: ['members ' ],
606+ tags: ['Members ' ],
607+ x: [
608+ 'required-groups ' => [
609+ IGroup::SuperAdmins,
610+ IGroup::Administrators,
611+ IGroup::SummitAdministrators,
612+ ]
613+ ],
614+ security: [['members_oauth2 ' => [
615+ MemberScopes::WriteMemberData,
616+ ]]],
567617 parameters: [
568618 new OA \Parameter (name: 'member_id ' , in: 'path ' , required: true , description: 'Member ID ' , schema: new OA \Schema (type: 'integer ' )),
569619 new OA \Parameter (name: 'affiliation_id ' , in: 'path ' , required: true , description: 'Affiliation ID ' , schema: new OA \Schema (type: 'integer ' )),
@@ -616,10 +666,13 @@ public function updateAffiliation($member_id, $affiliation_id)
616666
617667 #[OA \Delete(
618668 path: '/api/v1/members/me/affiliations/{affiliation_id} ' ,
669+ operationId: 'deleteCurrentMemberAffiliation ' ,
619670 summary: 'Delete current member affiliation ' ,
620671 description: 'Deletes an affiliation for the currently authenticated member ' ,
621- security: [['bearer ' => []]],
622- tags: ['members ' ],
672+ tags: ['Members ' ],
673+ security: [['members_oauth2 ' => [
674+ MemberScopes::WriteMyMemberData,
675+ ]]],
623676 parameters: [
624677 new OA \Parameter (name: 'affiliation_id ' , in: 'path ' , required: true , description: 'Affiliation ID ' , schema: new OA \Schema (type: 'integer ' )),
625678 ],
@@ -636,10 +689,20 @@ public function deleteMyAffiliation($affiliation_id)
636689
637690 #[OA \Delete(
638691 path: '/api/v1/members/{member_id}/affiliations/{affiliation_id} ' ,
692+ operationId: 'deleteMemberAffiliation ' ,
639693 summary: 'Delete member affiliation ' ,
640694 description: 'Deletes an affiliation for a specific member ' ,
641- security: [['bearer ' => []]],
642- tags: ['members ' ],
695+ tags: ['Members ' ],
696+ x: [
697+ 'required-groups ' => [
698+ IGroup::SuperAdmins,
699+ IGroup::Administrators,
700+ IGroup::SummitAdministrators,
701+ ]
702+ ],
703+ security: [['members_oauth2 ' => [
704+ MemberScopes::WriteMemberData,
705+ ]]],
643706 parameters: [
644707 new OA \Parameter (name: 'member_id ' , in: 'path ' , required: true , description: 'Member ID ' , schema: new OA \Schema (type: 'integer ' )),
645708 new OA \Parameter (name: 'affiliation_id ' , in: 'path ' , required: true , description: 'Affiliation ID ' , schema: new OA \Schema (type: 'integer ' )),
@@ -669,10 +732,20 @@ public function deleteAffiliation($member_id, $affiliation_id)
669732
670733 #[OA \Delete(
671734 path: '/api/v1/members/{member_id}/rsvp/{rsvp_id} ' ,
735+ operationId: 'deleteMemberRsvp ' ,
672736 summary: 'Delete member RSVP ' ,
673737 description: 'Deletes an RSVP for a specific member ' ,
674- security: [['bearer ' => []]],
675- tags: ['members ' ],
738+ tags: ['Members ' ],
739+ x: [
740+ 'required-groups ' => [
741+ IGroup::SuperAdmins,
742+ IGroup::Administrators,
743+ IGroup::SummitAdministrators,
744+ ]
745+ ],
746+ security: [['members_oauth2 ' => [
747+ MemberScopes::WriteMemberData,
748+ ]]],
676749 parameters: [
677750 new OA \Parameter (name: 'member_id ' , in: 'path ' , required: true , description: 'Member ID ' , schema: new OA \Schema (type: 'integer ' )),
678751 new OA \Parameter (name: 'rsvp_id ' , in: 'path ' , required: true , description: 'RSVP ID ' , schema: new OA \Schema (type: 'integer ' )),
@@ -699,10 +772,13 @@ public function deleteRSVP($member_id, $rsvp_id)
699772
700773 #[OA \Put(
701774 path: '/api/v1/members/me/membership/foundation ' ,
775+ operationId: 'signFoundationMembership ' ,
702776 summary: 'Sign foundation membership ' ,
703777 description: 'Signs the currently authenticated member up for foundation membership ' ,
704- security: [['bearer ' => []]],
705- tags: ['members ' ],
778+ tags: ['Members ' ],
779+ security: [['members_oauth2 ' => [
780+ MemberScopes::WriteMyMemberData,
781+ ]]],
706782 responses: [
707783 new OA \Response (
708784 response: Response::HTTP_OK ,
@@ -738,10 +814,13 @@ public function signFoundationMembership()
738814
739815 #[OA \Put(
740816 path: '/api/v1/members/me/membership/community ' ,
817+ operationId: 'signCommunityMembership ' ,
741818 summary: 'Sign community membership ' ,
742819 description: 'Signs the currently authenticated member up for community membership ' ,
743- security: [['bearer ' => []]],
744- tags: ['members ' ],
820+ tags: ['Members ' ],
821+ security: [['members_oauth2 ' => [
822+ MemberScopes::WriteMyMemberData,
823+ ]]],
745824 responses: [
746825 new OA \Response (
747826 response: Response::HTTP_OK ,
@@ -777,10 +856,13 @@ public function signCommunityMembership()
777856
778857 #[OA \Delete(
779858 path: '/api/v1/members/me/membership/resign ' ,
859+ operationId: 'resignMembership ' ,
780860 summary: 'Resign membership ' ,
781861 description: 'Resigns the currently authenticated member from their membership ' ,
782- security: [['bearer ' => []]],
783- tags: ['members ' ],
862+ tags: ['Members ' ],
863+ security: [['members_oauth2 ' => [
864+ MemberScopes::WriteMyMemberData,
865+ ]]],
784866 responses: [
785867 new OA \Response (response: Response::HTTP_NO_CONTENT , description: 'Membership resigned successfully ' ),
786868 new OA \Response (response: Response::HTTP_UNAUTHORIZED , description: 'Unauthorized ' ),
@@ -803,10 +885,13 @@ public function resignMembership()
803885
804886 #[OA \Put(
805887 path: '/api/v1/members/me/membership/individual ' ,
888+ operationId: 'signIndividualMembership ' ,
806889 summary: 'Sign individual membership ' ,
807890 description: 'Signs the currently authenticated member up for individual membership ' ,
808- security: [['bearer ' => []]],
809- tags: ['members ' ],
891+ tags: ['Members ' ],
892+ security: [['members_oauth2 ' => [
893+ MemberScopes::WriteMyMemberData,
894+ ]]],
810895 responses: [
811896 new OA \Response (
812897 response: Response::HTTP_OK ,
@@ -840,4 +925,4 @@ public function signIndividualMembership()
840925 });
841926 }
842927
843- }
928+ }
0 commit comments