From 206395aee31042e3262157076bfd8dbc6cef451f Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 15 Oct 2025 12:02:51 -0300 Subject: [PATCH 1/4] feat: Extend Swagger Coverage for controller `OAuth2SummitSpeakersAssistanceApiController` --- ...2SummitSpeakersAssistanceApiController.php | 253 +++++++++++++++++- app/Swagger/SummitPresentationSchemas.php | 140 +++++++++- 2 files changed, 390 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php index 70891f0e3..861e84454 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php @@ -1,4 +1,6 @@ - []]], + tags: ["summit-speakers-assistances"], + parameters: [ + new OA\Parameter( + name: "id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The summit id" + ), + new OA\Parameter( + name: "page", + in: "query", + required: false, + schema: new OA\Schema(type: "integer", default: 1), + description: "Page number" + ), + new OA\Parameter( + name: "per_page", + in: "query", + required: false, + schema: new OA\Schema(type: "integer", default: 10), + description: "Items per page" + ), + new OA\Parameter( + name: "filter", + in: "query", + description: "Filter query. Available operators: id==, on_site_phone==/=@, speaker_email==/=@, speaker==/=@, is_confirmed==, registered==, confirmation_date>/=/<= (epoch)", + schema: new OA\Schema(type: "string") + ), + new OA\Parameter( + name: "order", + in: "query", + description: "Order by field. Available fields: id, is_confirmed, confirmation_date, created, registered", + schema: new OA\Schema(type: "string") + ), + new OA\Parameter( + name: "expand", + in: "query", + description: "Comma-separated list of relations to expand. Available: speaker", + schema: new OA\Schema(type: "string") + ) + ], + responses: [ + new OA\Response( + response: 200, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PaginatedPresentationSpeakerSummitAssistanceConfirmationRequestsResponse") + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function getBySummit($summit_id) { try { @@ -162,6 +225,45 @@ public function getBySummit($summit_id) * @param $summit_id * @return mixed */ + #[OA\Get( + path: "/api/v1/summits/{id}/speakers-assistances/csv", + summary: "Export speaker assistances to CSV", + security: [["Bearer" => []]], + tags: ["summit-speakers-assistances"], + parameters: [ + new OA\Parameter( + name: "id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The summit id" + ), + new OA\Parameter( + name: "filter", + in: "query", + description: "Filter query. Available operators: id==, on_site_phone==/=@, speaker_email==/=@, speaker==/=@, is_confirmed==, registered==, confirmation_date>/=/<= (epoch)", + schema: new OA\Schema(type: "string") + ), + new OA\Parameter( + name: "order", + in: "query", + description: "Order by field. Available fields: id, is_confirmed, confirmation_date, created, registered", + schema: new OA\Schema(type: "string") + ) + ], + responses: [ + new OA\Response( + response: 200, + description: "OK", + content: new OA\MediaType(mediaType: "text/csv", schema: new OA\Schema(type: "string")) + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function getBySummitCSV($summit_id){ try { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); @@ -236,6 +338,41 @@ public function getBySummitCSV($summit_id){ * @param $summit_id * @return mixed */ + #[OA\Post( + path: "/api/v1/summits/{id}/speakers-assistances", + summary: "Create a speaker assistance confirmation request", + security: [["Bearer" => []]], + tags: ["summit-speakers-assistances"], + parameters: [ + new OA\Parameter( + name: "id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The summit id" + ) + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\MediaType( + mediaType: "application/json", + schema: new OA\Schema(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequestCreateRequest") + ) + ), + responses: [ + new OA\Response( + response: 201, + description: "Created", + content: new OA\JsonContent(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequest") + ), + new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function addSpeakerSummitAssistance($summit_id) { try { @@ -288,6 +425,48 @@ public function addSpeakerSummitAssistance($summit_id) * @param $assistance_id * @return mixed */ + #[OA\Put( + path: "/api/v1/summits/{id}/speakers-assistances/{assistance_id}", + summary: "Update a speaker assistance confirmation request", + security: [["Bearer" => []]], + tags: ["summit-speakers-assistances"], + parameters: [ + new OA\Parameter( + name: "id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The summit id" + ), + new OA\Parameter( + name: "assistance_id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The assistance id" + ) + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\MediaType( + mediaType: "application/json", + schema: new OA\Schema(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequestUpdateRequest") + ) + ), + responses: [ + new OA\Response( + response: 200, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequest") + ), + new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function updateSpeakerSummitAssistance($summit_id, $assistance_id) { try { @@ -340,6 +519,36 @@ public function updateSpeakerSummitAssistance($summit_id, $assistance_id) * @param $assistance_id * @return mixed */ + #[OA\Delete( + path: "/api/v1/summits/{id}/speakers-assistances/{assistance_id}", + summary: "Delete a speaker assistance confirmation request", + security: [["Bearer" => []]], + tags: ["summit-speakers-assistances"], + parameters: [ + new OA\Parameter( + name: "id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The summit id" + ), + new OA\Parameter( + name: "assistance_id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The assistance id" + ) + ], + responses: [ + new OA\Response(response: 204, description: "No Content"), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function deleteSpeakerSummitAssistance($summit_id, $assistance_id) { try { @@ -368,6 +577,46 @@ public function deleteSpeakerSummitAssistance($summit_id, $assistance_id) * @param $assistance_id * @return mixed */ + #[OA\Get( + path: "/api/v1/summits/{id}/speakers-assistances/{assistance_id}", + summary: "Get a speaker assistance confirmation request by id", + security: [["Bearer" => []]], + tags: ["summit-speakers-assistances"], + parameters: [ + new OA\Parameter( + name: "id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The summit id" + ), + new OA\Parameter( + name: "assistance_id", + in: "path", + required: true, + schema: new OA\Schema(type: "integer"), + description: "The assistance id" + ), + new OA\Parameter( + name: "expand", + in: "query", + description: "Comma-separated list of relations to expand. Available: speaker", + schema: new OA\Schema(type: "string") + ) + ], + responses: [ + new OA\Response( + response: 200, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequest") + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function getSpeakerSummitAssistanceBySummit($summit_id, $assistance_id) { try { @@ -398,4 +647,4 @@ public function getSpeakerSummitAssistanceBySummit($summit_id, $assistance_id) } } -} \ No newline at end of file +} diff --git a/app/Swagger/SummitPresentationSchemas.php b/app/Swagger/SummitPresentationSchemas.php index bf2e70ed8..653961ffa 100644 --- a/app/Swagger/SummitPresentationSchemas.php +++ b/app/Swagger/SummitPresentationSchemas.php @@ -147,6 +147,144 @@ class PresentationTrackChairScoreTypeUpdateRequest {} // End Track Chair Score Types +// Summit Speaker Assistance Schemas + +#[OA\Schema( + schema: "PresentationSpeakerSummitAssistanceConfirmationRequest", + type: "object", + properties: [ + new OA\Property(property: "id", type: "integer", example: 1), + new OA\Property(property: "created", type: "integer", description: "Unix timestamp", example: 1640995200), + new OA\Property(property: "last_edited", type: "integer", description: "Unix timestamp", example: 1640995200), + new OA\Property(property: "on_site_phone", type: "string", nullable: true), + new OA\Property(property: "registered", type: "boolean"), + new OA\Property(property: "is_confirmed", type: "boolean"), + new OA\Property(property: "checked_in", type: "boolean"), + new OA\Property(property: "summit_id", type: "integer"), + new OA\Property(property: "speaker_email", type: "string"), + new OA\Property(property: "speaker_full_name", type: "string"), + new OA\Property(property: "confirmation_date", type: "integer", nullable: true), + ], + anyOf:[ + new OA\Property(property: "speaker_id", type: "integer"), + new OA\Property(property: "speaker", type: "PresentationSpeaker"), + ] +)] +class PresentationSpeakerSummitAssistanceConfirmationRequest +{ +} + +#[OA\Schema( + schema: "PaginatedPresentationSpeakerSummitAssistanceConfirmationRequestsResponse", + allOf: [ + new OA\Schema(ref: "#/components/schemas/PaginateDataSchemaResponse"), + new OA\Schema( + properties: [ + new OA\Property( + property: "data", + type: "array", + items: new OA\Items(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequest") + ) + ] + ) + ] +)] +class PaginatedPresentationSpeakerSummitAssistanceConfirmationRequestsResponse +{ +} + +#[OA\Schema( + schema: "PresentationSpeakerSummitAssistanceConfirmationRequestCreateRequest", + type: "object", + required: ["speaker_id"], + properties: [ + new OA\Property(property: "speaker_id", type: "integer"), + new OA\Property(property: "on_site_phone", type: "string", maxLength: 50), + new OA\Property(property: "registered", type: "boolean"), + new OA\Property(property: "is_confirmed", type: "boolean"), + new OA\Property(property: "checked_in", type: "boolean") + ] +)] +class PresentationSpeakerSummitAssistanceConfirmationRequestCreateRequest +{ +} + +#[OA\Schema( + schema: "PresentationSpeakerSummitAssistanceConfirmationRequestUpdateRequest", + type: "object", + properties: [ + new OA\Property(property: "on_site_phone", type: "string", maxLength: 50), + new OA\Property(property: "registered", type: "boolean"), + new OA\Property(property: "is_confirmed", type: "boolean"), + new OA\Property(property: "checked_in", type: "boolean") + ] +)] +class PresentationSpeakerSummitAssistanceConfirmationRequestUpdateRequest +{ +} + +// + +#[OA\Schema( + schema: 'PresentationActionType', + type: 'object', + properties: [ + new OA\Property(property: 'id', type: 'integer', example: 1), + new OA\Property(property: 'created', type: 'integer', example: 1630500518), + new OA\Property(property: 'last_edited', type: 'integer', example: 1630500518), + new OA\Property(property: 'label', type: 'string', example: 'Review'), + new OA\Property(property: 'summit_id', type: 'integer', example: 42, description: 'Summit ID, add ?expand=summit to get full summit object'), + new OA\Property(property: 'order', type: 'integer', example: 1, description: 'Order within a selection plan. Only present when filtering by selection_plan_id', ), + ] +)] +class PresentationActionTypeSchema +{ +} + +#[OA\Schema( + schema: 'PaginatedPresentationActionTypesResponse', + allOf: [ + new OA\Schema(ref: '#/components/schemas/PaginateDataSchemaResponse'), + new OA\Schema( + type: 'object', + properties: [ + new OA\Property( + property: 'data', + type: 'array', + items: new OA\Items(ref: '#/components/schemas/PresentationActionType') + ) + ] + ) + ] +)] +class PaginatedPresentationActionTypesResponseSchema +{ +} + +#[OA\Schema( + schema: 'PresentationActionTypeCreateRequest', + type: 'object', + required: ['label'], + properties: [ + new OA\Property(property: 'label', type: 'string', example: 'Review', maxLength: 255), + new OA\Property(property: 'selection_plan_id', type: 'integer', example: 42, description: 'If provided, the order field will be set within the context of the selection plan'), + ] +)] +class PresentationActionTypeCreateRequestSchema +{ +} + +#[OA\Schema( + schema: 'PresentationActionTypeUpdateRequest', + type: 'object', + properties: [ + new OA\Property(property: 'label', type: 'string', example: 'Review', maxLength: 255), + ] +)] +class PresentationActionTypeUpdateRequestSchema +{ +} + #[OA\Schema( schema: 'PresentationActionType', type: 'object', @@ -205,4 +343,4 @@ class PresentationActionTypeCreateRequestSchema )] class PresentationActionTypeUpdateRequestSchema { -} \ No newline at end of file +} From bf4d3b10468a888e9716d2445daf298c8171ffc8 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 26 Nov 2025 21:35:21 +0000 Subject: [PATCH 2/4] chore: Add the correct security and x attributes and create security schema, fix path routes and change schema to be defined as requested --- ...2SummitSpeakersAssistanceApiController.php | 50 ++++++++++++++----- .../Security/SpeakerAssistancesAuthSchema.php | 26 ++++++++++ app/Swagger/SummitPresentationSchemas.php | 5 +- 3 files changed, 65 insertions(+), 16 deletions(-) create mode 100644 app/Swagger/Security/SpeakerAssistancesAuthSchema.php diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php index 861e84454..f55bc105e 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php @@ -16,7 +16,9 @@ **/ use App\Http\Utils\BooleanCellFormatter; use App\Http\Utils\EpochCellFormatter; +use App\Models\Foundation\Main\IGroup; use App\Models\Foundation\Summit\Repositories\IPresentationSpeakerSummitAssistanceConfirmationRequestRepository; +use App\Security\SummitScopes; use Illuminate\Http\Response; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Request; @@ -83,9 +85,13 @@ public function __construct */ #[OA\Get( path: "/api/v1/summits/{id}/speakers-assistances", + operationId: 'getBySummit', summary: "Get all speaker assistances for a summit", - security: [["Bearer" => []]], - tags: ["summit-speakers-assistances"], + security: [["summit_speaker_assistances_oauth2" => [SummitScopes::ReadAllSummitData]]], + tags: ["Summit Speakers Assistances"], + x: [ + "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + ], parameters: [ new OA\Parameter( name: "id", @@ -227,9 +233,13 @@ public function getBySummit($summit_id) */ #[OA\Get( path: "/api/v1/summits/{id}/speakers-assistances/csv", + operationId: 'getBySummitCSV', summary: "Export speaker assistances to CSV", - security: [["Bearer" => []]], - tags: ["summit-speakers-assistances"], + security: [["summit_speaker_assistances_oauth2" => [SummitScopes::ReadAllSummitData]]], + tags: ["Summit Speakers Assistances"], + x: [ + "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + ], parameters: [ new OA\Parameter( name: "id", @@ -340,9 +350,13 @@ public function getBySummitCSV($summit_id){ */ #[OA\Post( path: "/api/v1/summits/{id}/speakers-assistances", + operationId: 'addSpeakerSummitAssistance', summary: "Create a speaker assistance confirmation request", - security: [["Bearer" => []]], - tags: ["summit-speakers-assistances"], + security: [["summit_speaker_assistances_oauth2" => [SummitScopes::WriteSummitSpeakerAssistanceData, SummitScopes::WriteSummitData]]], + tags: ["Summit Speakers Assistances"], + x: [ + "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + ], parameters: [ new OA\Parameter( name: "id", @@ -427,9 +441,13 @@ public function addSpeakerSummitAssistance($summit_id) */ #[OA\Put( path: "/api/v1/summits/{id}/speakers-assistances/{assistance_id}", + operationId: 'updateSpeakerSummitAssistance', summary: "Update a speaker assistance confirmation request", - security: [["Bearer" => []]], - tags: ["summit-speakers-assistances"], + security: [["summit_speaker_assistances_oauth2" => [SummitScopes::WriteSummitSpeakerAssistanceData, SummitScopes::WriteSummitData]]], + tags: ["Summit Speakers Assistances"], + x: [ + "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + ], parameters: [ new OA\Parameter( name: "id", @@ -521,9 +539,13 @@ public function updateSpeakerSummitAssistance($summit_id, $assistance_id) */ #[OA\Delete( path: "/api/v1/summits/{id}/speakers-assistances/{assistance_id}", + operationId: 'deleteSpeakerSummitAssistance', summary: "Delete a speaker assistance confirmation request", - security: [["Bearer" => []]], - tags: ["summit-speakers-assistances"], + security: [["summit_speaker_assistances_oauth2" => [SummitScopes::WriteSummitSpeakerAssistanceData, SummitScopes::WriteSummitData]]], + tags: ["Summit Speakers Assistances"], + x: [ + "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + ], parameters: [ new OA\Parameter( name: "id", @@ -579,9 +601,13 @@ public function deleteSpeakerSummitAssistance($summit_id, $assistance_id) */ #[OA\Get( path: "/api/v1/summits/{id}/speakers-assistances/{assistance_id}", + operationId: 'getSpeakerSummitAssistanceBySummit', summary: "Get a speaker assistance confirmation request by id", - security: [["Bearer" => []]], - tags: ["summit-speakers-assistances"], + security: [["summit_speaker_assistances_oauth2" => [SummitScopes::ReadAllSummitData]]], + tags: ["Summit Speakers Assistances"], + x: [ + "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + ], parameters: [ new OA\Parameter( name: "id", diff --git a/app/Swagger/Security/SpeakerAssistancesAuthSchema.php b/app/Swagger/Security/SpeakerAssistancesAuthSchema.php new file mode 100644 index 000000000..f063dba24 --- /dev/null +++ b/app/Swagger/Security/SpeakerAssistancesAuthSchema.php @@ -0,0 +1,26 @@ + 'Read All Summit Data', + SummitScopes::WriteSummitSpeakerAssistanceData => 'Write Summit Speaker Assistance Data', + SummitScopes::WriteSummitData => 'Write Summit Data', + ], + ), + ], + ) +] +class SpeakerAssistancesAuthSchema{} diff --git a/app/Swagger/SummitPresentationSchemas.php b/app/Swagger/SummitPresentationSchemas.php index 653961ffa..4622cdd63 100644 --- a/app/Swagger/SummitPresentationSchemas.php +++ b/app/Swagger/SummitPresentationSchemas.php @@ -163,11 +163,8 @@ class PresentationTrackChairScoreTypeUpdateRequest {} new OA\Property(property: "summit_id", type: "integer"), new OA\Property(property: "speaker_email", type: "string"), new OA\Property(property: "speaker_full_name", type: "string"), + new OA\Property(property: "speaker_id", type: "integer", description: "PresentationSpeaker Id, full object available in 'speaker' expand (speaker field)"), new OA\Property(property: "confirmation_date", type: "integer", nullable: true), - ], - anyOf:[ - new OA\Property(property: "speaker_id", type: "integer"), - new OA\Property(property: "speaker", type: "PresentationSpeaker"), ] )] class PresentationSpeakerSummitAssistanceConfirmationRequest From 99728f558a19dde6a8377da52bbbe1605e133f99 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 3 Dec 2025 20:37:14 +0000 Subject: [PATCH 3/4] feat: Add changes requested --- .../OAuth2SummitSpeakersAssistanceApiController.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php index f55bc105e..146ea38ff 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php @@ -90,7 +90,7 @@ public function __construct security: [["summit_speaker_assistances_oauth2" => [SummitScopes::ReadAllSummitData]]], tags: ["Summit Speakers Assistances"], x: [ - "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + "required-groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] ], parameters: [ new OA\Parameter( @@ -238,7 +238,7 @@ public function getBySummit($summit_id) security: [["summit_speaker_assistances_oauth2" => [SummitScopes::ReadAllSummitData]]], tags: ["Summit Speakers Assistances"], x: [ - "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + "required-groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] ], parameters: [ new OA\Parameter( @@ -355,7 +355,7 @@ public function getBySummitCSV($summit_id){ security: [["summit_speaker_assistances_oauth2" => [SummitScopes::WriteSummitSpeakerAssistanceData, SummitScopes::WriteSummitData]]], tags: ["Summit Speakers Assistances"], x: [ - "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + "required-groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] ], parameters: [ new OA\Parameter( @@ -446,7 +446,7 @@ public function addSpeakerSummitAssistance($summit_id) security: [["summit_speaker_assistances_oauth2" => [SummitScopes::WriteSummitSpeakerAssistanceData, SummitScopes::WriteSummitData]]], tags: ["Summit Speakers Assistances"], x: [ - "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + "required-groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] ], parameters: [ new OA\Parameter( @@ -544,7 +544,7 @@ public function updateSpeakerSummitAssistance($summit_id, $assistance_id) security: [["summit_speaker_assistances_oauth2" => [SummitScopes::WriteSummitSpeakerAssistanceData, SummitScopes::WriteSummitData]]], tags: ["Summit Speakers Assistances"], x: [ - "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + "required-groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] ], parameters: [ new OA\Parameter( @@ -606,7 +606,7 @@ public function deleteSpeakerSummitAssistance($summit_id, $assistance_id) security: [["summit_speaker_assistances_oauth2" => [SummitScopes::ReadAllSummitData]]], tags: ["Summit Speakers Assistances"], x: [ - "authz_groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] + "required-groups" => [IGroup::SuperAdmins, IGroup::Administrators, IGroup::SummitAdministrators] ], parameters: [ new OA\Parameter( From c1d93090bfc6610aee3302e2d2518995d3cd2a9b Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Fri, 23 Jan 2026 20:36:08 +0000 Subject: [PATCH 4/4] chore: change HTTP code 200 to constant and fix merge conflicts Signed-off-by: Matias Perrone --- ...2SummitSpeakersAssistanceApiController.php | 14 ++--- app/Swagger/SummitPresentationSchemas.php | 62 +------------------ 2 files changed, 8 insertions(+), 68 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php index 146ea38ff..da57a08e0 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSpeakersAssistanceApiController.php @@ -135,7 +135,7 @@ public function __construct ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: "OK", content: new OA\JsonContent(ref: "#/components/schemas/PaginatedPresentationSpeakerSummitAssistanceConfirmationRequestsResponse") ), @@ -263,7 +263,7 @@ public function getBySummit($summit_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: "OK", content: new OA\MediaType(mediaType: "text/csv", schema: new OA\Schema(type: "string")) ), @@ -375,7 +375,7 @@ public function getBySummitCSV($summit_id){ ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: "Created", content: new OA\JsonContent(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequest") ), @@ -473,7 +473,7 @@ public function addSpeakerSummitAssistance($summit_id) ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: "OK", content: new OA\JsonContent(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequest") ), @@ -563,7 +563,7 @@ public function updateSpeakerSummitAssistance($summit_id, $assistance_id) ) ], responses: [ - new OA\Response(response: 204, description: "No Content"), + new OA\Response(response: Response::HTTP_NO_CONTENT, description: "No Content"), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), @@ -632,7 +632,7 @@ public function deleteSpeakerSummitAssistance($summit_id, $assistance_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: "OK", content: new OA\JsonContent(ref: "#/components/schemas/PresentationSpeakerSummitAssistanceConfirmationRequest") ), @@ -673,4 +673,4 @@ public function getSpeakerSummitAssistanceBySummit($summit_id, $assistance_id) } } -} +} \ No newline at end of file diff --git a/app/Swagger/SummitPresentationSchemas.php b/app/Swagger/SummitPresentationSchemas.php index 4622cdd63..c365566ea 100644 --- a/app/Swagger/SummitPresentationSchemas.php +++ b/app/Swagger/SummitPresentationSchemas.php @@ -280,64 +280,4 @@ class PresentationActionTypeCreateRequestSchema )] class PresentationActionTypeUpdateRequestSchema { -} - -#[OA\Schema( - schema: 'PresentationActionType', - type: 'object', - properties: [ - new OA\Property(property: 'id', type: 'integer', example: 1), - new OA\Property(property: 'created', type: 'integer', example: 1630500518), - new OA\Property(property: 'last_edited', type: 'integer', example: 1630500518), - new OA\Property(property: 'label', type: 'string', example: 'Review'), - new OA\Property(property: 'summit_id', type: 'integer', example: 42, description: 'Summit ID, add ?expand=summit to get full summit object'), - new OA\Property(property: 'order', type: 'integer', example: 1, description: 'Order within a selection plan. Only present when filtering by selection_plan_id', ), - ] -)] -class PresentationActionTypeSchema -{ -} - -#[OA\Schema( - schema: 'PaginatedPresentationActionTypesResponse', - allOf: [ - new OA\Schema(ref: '#/components/schemas/PaginateDataSchemaResponse'), - new OA\Schema( - type: 'object', - properties: [ - new OA\Property( - property: 'data', - type: 'array', - items: new OA\Items(ref: '#/components/schemas/PresentationActionType') - ) - ] - ) - ] -)] -class PaginatedPresentationActionTypesResponseSchema -{ -} - -#[OA\Schema( - schema: 'PresentationActionTypeCreateRequest', - type: 'object', - required: ['label'], - properties: [ - new OA\Property(property: 'label', type: 'string', example: 'Review', maxLength: 255), - new OA\Property(property: 'selection_plan_id', type: 'integer', example: 42, description: 'If provided, the order field will be set within the context of the selection plan'), - ] -)] -class PresentationActionTypeCreateRequestSchema -{ -} - -#[OA\Schema( - schema: 'PresentationActionTypeUpdateRequest', - type: 'object', - properties: [ - new OA\Property(property: 'label', type: 'string', example: 'Review', maxLength: 255), - ] -)] -class PresentationActionTypeUpdateRequestSchema -{ -} +} \ No newline at end of file