From 9b2f2af9e22ecc5b05d7a27eb4342f63325c206b Mon Sep 17 00:00:00 2001 From: Jose Andres Tejerina Date: Thu, 18 Dec 2025 10:54:37 -0300 Subject: [PATCH 1/6] feat: Extend Swagger Coverage for controller OAuth2SummitSponsorApiController --- .../OAuth2SummitSponsorApiController.php | 2314 +++++++++++++++++ .../Models/ExtraQuestionTypeValueSchema.php | 16 + app/Swagger/Models/SponsorAdSchema.php | 20 + app/Swagger/Models/SponsorMaterialSchema.php | 20 + app/Swagger/Models/SponsorSchema.php | 23 + .../Models/SponsorSocialNetworkSchema.php | 18 + .../Models/SummitLeadReportSettingSchema.php | 21 + .../SummitSponsorExtraQuestionTypeSchema.php | 25 + app/Swagger/Security/SponsorOAuth2Schema.php | 25 + app/Swagger/SponsorSchemas.php | 224 ++ routes/api_v1.php | 2 +- 11 files changed, 2707 insertions(+), 1 deletion(-) create mode 100644 app/Swagger/Models/ExtraQuestionTypeValueSchema.php create mode 100644 app/Swagger/Models/SponsorAdSchema.php create mode 100644 app/Swagger/Models/SponsorMaterialSchema.php create mode 100644 app/Swagger/Models/SponsorSchema.php create mode 100644 app/Swagger/Models/SponsorSocialNetworkSchema.php create mode 100644 app/Swagger/Models/SummitLeadReportSettingSchema.php create mode 100644 app/Swagger/Models/SummitSponsorExtraQuestionTypeSchema.php create mode 100644 app/Swagger/Security/SponsorOAuth2Schema.php create mode 100644 app/Swagger/SponsorSchemas.php diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php index f6ea9d3f5..6490ade9d 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php @@ -13,13 +13,16 @@ **/ use App\Http\Exceptions\HTTP403ForbiddenException; +use App\Models\Foundation\Main\IGroup; use App\Models\Foundation\Summit\Repositories\ISponsorAdRepository; use App\Models\Foundation\Summit\Repositories\ISponsorExtraQuestionTypeRepository; use App\Models\Foundation\Summit\Repositories\ISponsorMaterialRepository; use App\Models\Foundation\Summit\Repositories\ISponsorRepository; use App\Models\Foundation\Summit\Repositories\ISponsorSocialNetworkRepository; use App\ModelSerializers\SerializerUtils; +use App\Security\SummitScopes; use Illuminate\Http\Request as LaravelRequest; +use Illuminate\Http\Response; use models\oauth2\IResourceServerContext; use models\summit\ISummitRepository; use models\summit\Sponsor; @@ -27,6 +30,7 @@ use models\summit\Summit; use models\utils\IEntity; use ModelSerializers\SerializerRegistry; +use OpenApi\Attributes as OA; use services\model\ISummitSponsorService; use utils\Filter; use utils\FilterElement; @@ -238,6 +242,87 @@ protected function updateSerializerType(): string{ SerializerRegistry::SerializerType_PublicV2; } + #[OA\Get( + path: "/api/v2/summits/{id}/sponsors", + description: "Get all sponsors for a summit", + summary: 'Read Sponsors by Summit (V2)', + operationId: 'getSponsorsBySummitV2', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + 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: 'order', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Order by field (e.g., +id, -company_name)' + ), + new OA\Parameter( + name: 'expand', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Expand relationships (company)' + ), + new OA\Parameter( + name: 'fields', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Fields to include (id,company_name)' + ), + new OA\Parameter( + name: 'filter', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Filter expression (e.g., is_published==true)' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Success' + ), + 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_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @return \Illuminate\Http\JsonResponse|mixed @@ -247,6 +332,53 @@ public function getAllBySummitV2($summit_id){ return $this->getAllBySummit($summit_id); } + #[OA\Get( + path: "/api/v2/summits/{id}/sponsors/{sponsor_id}", + description: "Get a specific sponsor by id", + summary: 'Read Sponsor by ID (V2)', + operationId: 'getSponsorByIdV2', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Success', + content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + ), + 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @return \Illuminate\Http\JsonResponse|mixed @@ -285,6 +417,49 @@ protected function addChild(Summit $summit, array $payload): IEntity return $this->service->addSponsor($summit, $payload); } + #[OA\Post( + path: "/api/v2/summits/{id}/sponsors", + description: "Create a new sponsor", + summary: 'Create Sponsor (V2)', + operationId: 'addSponsorV2', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + 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\JsonContent(ref: "#/components/schemas/SponsorCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + ), + 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") + ] + )] /** * @param $summit_id * @return \Illuminate\Http\JsonResponse|mixed @@ -360,6 +535,56 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I return $this->service->updateSponsor($summit, $child_id, $payload); } + #[OA\Put( + path: "/api/v2/summits/{id}/sponsors/{sponsor_id}", + description: "Update an existing sponsor", + summary: 'Update Sponsor (V2)', + operationId: 'updateSponsorV2', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: 'Success', + content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + ), + 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") + ] + )] /** * @param $summit_id * @param $child_id @@ -371,6 +596,57 @@ public function updateV2($summit_id, $child_id){ return $this->update($summit_id, $child_id); } + #[OA\Put( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/users/{member_id}", + description: "Add a user to a sponsor", + summary: 'Add Sponsor User', + operationId: 'addSponsorUser', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'member_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The member id to add' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Success', + content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + ), + 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -400,6 +676,57 @@ public function addSponsorUser($summit_id, $sponsor_id, $member_id) }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/users/{member_id}", + description: "Remove a user from a sponsor", + summary: 'Remove Sponsor User', + operationId: 'removeSponsorUser', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'member_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The member id to remove' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Success', + content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + ), + 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -432,6 +759,69 @@ public function removeSponsorUser($summit_id, $sponsor_id, $member_id) * @param $sponsor_id * @return mixed */ + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/side-image", + description: "Add a side image to a sponsor", + summary: 'Add Sponsor Side Image', + operationId: 'addSponsorSideImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\MediaType( + mediaType: 'multipart/form-data', + schema: new OA\Schema( + type: 'object', + required: ['file'], + properties: [ + new OA\Property( + property: 'file', + type: 'string', + format: 'binary', + description: 'The image file' + ), + ] + ) + ) + ), + responses: [ + new OA\Response( + response: 201, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/File') + ), + 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 addSponsorSideImage(LaravelRequest $request, $summit_id, $sponsor_id) { return $this->processRequest(function () use ($request, $summit_id, $sponsor_id) { @@ -456,6 +846,49 @@ public function addSponsorSideImage(LaravelRequest $request, $summit_id, $sponso }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/side-image", + description: "Delete a sponsor side image", + summary: 'Delete Sponsor Side Image', + operationId: 'deleteSponsorSideImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -481,6 +914,69 @@ public function deleteSponsorSideImage($summit_id, $sponsor_id) * @param $sponsor_id * @return \Illuminate\Http\JsonResponse|mixed */ + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/header-image", + description: "Add a header image to a sponsor", + summary: 'Add Sponsor Header Image', + operationId: 'addSponsorHeaderImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\MediaType( + mediaType: 'multipart/form-data', + schema: new OA\Schema( + type: 'object', + required: ['file'], + properties: [ + new OA\Property( + property: 'file', + type: 'string', + format: 'binary', + description: 'The image file' + ), + ] + ) + ) + ), + responses: [ + new OA\Response( + response: 201, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/File') + ), + 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 addSponsorHeaderImage(LaravelRequest $request, $summit_id, $sponsor_id) { return $this->processRequest(function () use ($request, $summit_id, $sponsor_id) { @@ -505,6 +1001,49 @@ public function addSponsorHeaderImage(LaravelRequest $request, $summit_id, $spon }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/header-image", + description: "Delete a sponsor header image", + summary: 'Delete Sponsor Header Image', + operationId: 'deleteSponsorHeaderImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -524,6 +1063,69 @@ public function deleteSponsorHeaderImage($summit_id, $sponsor_id) }); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/header-image/mobile", + description: "Add a mobile header image to a sponsor", + summary: 'Add Sponsor Header Image Mobile', + operationId: 'addSponsorHeaderImageMobile', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\MediaType( + mediaType: 'multipart/form-data', + schema: new OA\Schema( + type: 'object', + required: ['file'], + properties: [ + new OA\Property( + property: 'file', + type: 'string', + format: 'binary', + description: 'The image file' + ), + ] + ) + ) + ), + responses: [ + new OA\Response( + response: 201, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/File') + ), + 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") + ] + )] /** * @param LaravelRequest $request * @param $summit_id @@ -554,6 +1156,49 @@ public function addSponsorHeaderImageMobile(LaravelRequest $request, $summit_id, }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/header-image/mobile", + description: "Delete a sponsor mobile header image", + summary: 'Delete Sponsor Header Image Mobile', + operationId: 'deleteSponsorHeaderImageMobile', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -573,6 +1218,69 @@ public function deleteSponsorHeaderImageMobile($summit_id, $sponsor_id) }); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/carousel-advertise-image", + description: "Add a carousel advertise image to a sponsor", + summary: 'Add Sponsor Carousel Advertise Image', + operationId: 'addSponsorCarouselAdvertiseImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\MediaType( + mediaType: 'multipart/form-data', + schema: new OA\Schema( + type: 'object', + required: ['file'], + properties: [ + new OA\Property( + property: 'file', + type: 'string', + format: 'binary', + description: 'The image file' + ), + ] + ) + ) + ), + responses: [ + new OA\Response( + response: 201, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/File') + ), + 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") + ] + )] /** * @param LaravelRequest $request * @param $summit_id @@ -603,6 +1311,49 @@ public function addSponsorCarouselAdvertiseImage(LaravelRequest $request, $summi }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/carousel-advertise-image", + description: "Delete a sponsor carousel advertise image", + summary: 'Delete Sponsor Carousel Advertise Image', + operationId: 'deleteSponsorCarouselAdvertiseImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -628,6 +1379,80 @@ public function deleteSponsorCarouselAdvertiseImage($summit_id, $sponsor_id) // Ads + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/ads", + description: "Get all ads for a sponsor", + summary: 'Read Sponsor Ads', + operationId: 'getSponsorAds', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor 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: 'order', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Order by field (e.g., +id, -order)' + ), + new OA\Parameter( + name: 'filter', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Filter expression' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Success' + ), + 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -681,6 +1506,55 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/ads", + description: "Create a new sponsor ad", + summary: 'Add Sponsor Ad', + operationId: 'addSponsorAd', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorAdCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/SponsorAd') + ), + 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") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -707,6 +1581,76 @@ public function addAd($summit_id, $sponsor_id) }); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/ads/{ad_id}/image", + description: "Add an image to a sponsor ad", + summary: 'Add Sponsor Ad Image', + operationId: 'addSponsorAdImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'ad_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The ad id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\MediaType( + mediaType: 'multipart/form-data', + schema: new OA\Schema( + type: 'object', + required: ['file'], + properties: [ + new OA\Property( + property: 'file', + type: 'string', + format: 'binary', + description: 'The image file' + ), + ] + ) + ) + ), + responses: [ + new OA\Response( + response: 201, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/File') + ), + 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") + ] + )] /** * @param LaravelRequest $request * @param $summit_id @@ -738,6 +1682,56 @@ public function addAdImage(LaravelRequest $request, $summit_id, $sponsor_id, $ad }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/ads/{ad_id}/image", + description: "Remove an image from a sponsor ad", + summary: 'Remove Sponsor Ad Image', + operationId: 'removeSponsorAdImage', + tags: ['Sponsors'], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'ad_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The ad 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_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -758,6 +1752,60 @@ public function removeAdImage($summit_id, $sponsor_id, $ad_id) }); } + #[OA\Put( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/ads/{ad_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Update Sponsor Ad', + operationId: 'updateSponsorAd', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'ad_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The ad id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorAdUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: 'Ad updated successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -785,6 +1833,55 @@ public function updateAd($summit_id, $sponsor_id, $ad_id) }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/ads/{ad_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Delete Sponsor Ad', + operationId: 'deleteSponsorAd', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'ad_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The ad id' + ), + ], + responses: [ + new OA\Response( + response: 204, + description: 'Ad deleted successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -805,6 +1902,58 @@ public function deleteAd($summit_id, $sponsor_id, $ad_id) }); } + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/ads/{ad_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::Sponsors . ", " . IGroup::SponsorExternalUsers, + summary: 'Read Sponsor Ad', + operationId: 'getSponsorAd', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'ad_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The ad id' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Ad retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -837,6 +1986,77 @@ public function getAd($summit_id, $sponsor_id, $ad_id) // Materials + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/materials", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::Sponsors . ", " . IGroup::SponsorExternalUsers, + summary: 'Read Sponsor Materials', + operationId: 'getSponsorMaterials', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', example: 1) + ), + new OA\Parameter( + name: 'per_page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', example: 10) + ), + new OA\Parameter( + name: 'order', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Order by field (e.g., +id, -order)' + ), + new OA\Parameter( + name: 'filter', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Filter expression' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Sponsor materials retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -893,6 +2113,54 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/materials", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Add Sponsor Material', + operationId: 'addSponsorMaterial', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorMaterialCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: 'Material created successfully', + content: new OA\JsonContent(ref: '#/components/schemas/SponsorMaterial') + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -919,6 +2187,60 @@ public function addMaterial($summit_id, $sponsor_id) }); } + #[OA\Put( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/materials/{material_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Update Sponsor Material', + operationId: 'updateSponsorMaterial', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'material_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The material id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorMaterialUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: 'Material updated successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -946,6 +2268,55 @@ public function updateMaterial($summit_id, $sponsor_id, $material_id) }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/materials/{material_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Delete Sponsor Material', + operationId: 'deleteSponsorMaterial', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'material_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The material id' + ), + ], + responses: [ + new OA\Response( + response: 204, + description: 'Material deleted successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -966,6 +2337,58 @@ public function deleteMaterial($summit_id, $sponsor_id, $material_id) }); } + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/materials/{material_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::Sponsors . ", " . IGroup::SponsorExternalUsers, + summary: 'Read Sponsor Material', + operationId: 'getSponsorMaterial', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'material_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The material id' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Material retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -998,6 +2421,77 @@ public function getMaterial($summit_id, $sponsor_id, $material_id) // Social Networks + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/social-networks", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::Sponsors . ", " . IGroup::SponsorExternalUsers, + summary: 'Read Sponsor Social Networks', + operationId: 'getSponsorSocialNetworks', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', example: 1) + ), + new OA\Parameter( + name: 'per_page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', example: 10) + ), + new OA\Parameter( + name: 'order', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Order by field (e.g., +id)' + ), + new OA\Parameter( + name: 'filter', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Filter expression' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Social networks retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1050,6 +2544,54 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/social-networks", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Add Sponsor Social Network', + operationId: 'addSponsorSocialNetwork', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorSocialNetworkCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: 'Social network created successfully', + content: new OA\JsonContent(ref: '#/components/schemas/SponsorSocialNetwork') + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1076,6 +2618,58 @@ public function addSocialNetwork($summit_id, $sponsor_id) }); } + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/social-networks/{social_network_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::Sponsors . ", " . IGroup::SponsorExternalUsers, + summary: 'Read Sponsor Social Network', + operationId: 'getSponsorSocialNetwork', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + IGroup::SponsorExternalUsers, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'social_network_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The social network id' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Social network retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1106,6 +2700,60 @@ public function getSocialNetwork($summit_id, $sponsor_id, $social_network_id) }); } + #[OA\Put( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/social-networks/{social_network_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Update Sponsor Social Network', + operationId: 'updateSponsorSocialNetwork', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'social_network_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The social network id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorSocialNetworkUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: 'Social network updated successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1133,6 +2781,55 @@ public function updateSocialNetwork($summit_id, $sponsor_id, $social_network_id) }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/social-networks/{social_network_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Delete Sponsor Social Network', + operationId: 'deleteSponsorSocialNetwork', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'social_network_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The social network id' + ), + ], + responses: [ + new OA\Response( + response: 204, + description: 'Social network deleted successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1155,6 +2852,75 @@ public function deleteSocialNetwork($summit_id, $sponsor_id, $social_network_id) // Extra Questions + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Read Sponsor Extra Questions', + operationId: 'getSponsorExtraQuestions', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', example: 1) + ), + new OA\Parameter( + name: 'per_page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', example: 10) + ), + new OA\Parameter( + name: 'order', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Order by field (e.g., +id, -name, +order)' + ), + new OA\Parameter( + name: 'filter', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string'), + description: 'Filter expression' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Extra questions retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1219,6 +2985,42 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ); } + #[OA\Get( + path: "/api/v1/summits/{id}/sponsor-extra-questions-metadata", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Read Sponsor Extra Questions Metadata', + operationId: 'getSponsorExtraQuestionsMetadata', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Extra questions metadata retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @return mixed @@ -1234,6 +3036,54 @@ public function getMetadata($summit_id) ); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Add Sponsor Extra Question', + operationId: 'addSponsorExtraQuestion', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorExtraQuestionCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: 'Extra question created successfully', + content: new OA\JsonContent(ref: '#/components/schemas/SummitSponsorExtraQuestionType') + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1268,6 +3118,56 @@ public function addExtraQuestion($summit_id, $sponsor_id) }); } + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions/{extra_question_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Read Sponsor Extra Question', + operationId: 'getSponsorExtraQuestion', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'extra_question_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The extra question id' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Extra question retrieved successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1303,6 +3203,60 @@ public function getExtraQuestion($summit_id, $sponsor_id, $extra_question_id) }); } + #[OA\Put( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions/{extra_question_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Update Sponsor Extra Question', + operationId: 'updateSponsorExtraQuestion', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'extra_question_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The extra question id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/SponsorExtraQuestionUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: 'Extra question updated successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1338,6 +3292,55 @@ public function updateExtraQuestion($summit_id, $sponsor_id, $extra_question_id) }); } + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions/{extra_question_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Delete Sponsor Extra Question', + operationId: 'deleteSponsorExtraQuestion', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'extra_question_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The extra question id' + ), + ], + responses: [ + new OA\Response( + response: 204, + description: 'Extra question deleted successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1368,6 +3371,61 @@ public function deleteExtraQuestion($summit_id, $sponsor_id, $extra_question_id) // Question Values use ParametrizedAddEntity; + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions/{extra_question_id}/values", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Add Extra Question Value', + operationId: 'addSponsorExtraQuestionValue', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'extra_question_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The extra question id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/ExtraQuestionValueCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: 'Question value created successfully', + content: new OA\JsonContent(ref: '#/components/schemas/ExtraQuestionTypeValue') + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1406,6 +3464,67 @@ function ($payload, $summit, $sponsor_id, $question_id) { use ParametrizedUpdateEntity; + #[OA\Put( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions/{extra_question_id}/values/{value_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Update Extra Question Value', + operationId: 'updateSponsorExtraQuestionValue', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'extra_question_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The extra question id' + ), + new OA\Parameter( + name: 'value_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The question value id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/ExtraQuestionValueUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: 'Question value updated successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1447,6 +3566,62 @@ function ($value_id, $payload, $summit, $sponsor_id, $extra_question_id) { } use ParametrizedDeleteEntity; + #[OA\Delete( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/extra-questions/{extra_question_id}/values/{value_id}", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Delete Extra Question Value', + operationId: 'deleteSponsorExtraQuestionValue', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + new OA\Parameter( + name: 'extra_question_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The extra question id' + ), + new OA\Parameter( + name: 'value_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The question value id' + ), + ], + responses: [ + new OA\Response( + response: 204, + description: 'Question value deleted successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1478,6 +3653,50 @@ public function deleteExtraQuestionValue($summit_id, $sponsor_id, $extra_questio } + #[OA\Get( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/lead-report-settings/metadata", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::Sponsors, + summary: 'Get Lead Report Settings Metadata', + operationId: 'getLeadReportSettingsMetadata', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::Sponsors, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + responses: [ + new OA\Response( + response: 200, + description: 'Lead report settings metadata retrieved' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1496,6 +3715,54 @@ public function getLeadReportSettingsMetadata($summit_id, $sponsor_id) { }); } + #[OA\Post( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/lead-report-settings", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Add Lead Report Settings', + operationId: 'addLeadReportSettings', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/LeadReportSettingsCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: 'Lead report settings created successfully', + content: new OA\JsonContent(ref: '#/components/schemas/SummitLeadReportSetting') + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id @@ -1525,6 +3792,53 @@ public function addLeadReportSettings($summit_id, $sponsor_id) { }); } + #[OA\Put( + path: "/api/v1/summits/{id}/sponsors/{sponsor_id}/lead-report-settings", + description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, + summary: 'Update Lead Report Settings', + operationId: 'updateLeadReportSettings', + tags: ['Sponsors'], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + ] + ], + security: [['summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ]]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'sponsor_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The sponsor id' + ), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/LeadReportSettingsUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: 'Lead report settings updated successfully' + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") + ] + )] /** * @param $summit_id * @param $sponsor_id diff --git a/app/Swagger/Models/ExtraQuestionTypeValueSchema.php b/app/Swagger/Models/ExtraQuestionTypeValueSchema.php new file mode 100644 index 000000000..734e62eba --- /dev/null +++ b/app/Swagger/Models/ExtraQuestionTypeValueSchema.php @@ -0,0 +1,16 @@ + 'Read Summit Sponsor Data', + SummitScopes::ReadAllSummitData => 'Read All Summit Sponsor Data', + SummitScopes::WriteSummitData => 'Write Summit Sponsor Data', + ], + ), + ], + ) +] +class SponsorOAuth2Schema {} diff --git a/app/Swagger/SponsorSchemas.php b/app/Swagger/SponsorSchemas.php new file mode 100644 index 000000000..113286c6c --- /dev/null +++ b/app/Swagger/SponsorSchemas.php @@ -0,0 +1,224 @@ + 'side-image'], function () { - Route::post('', ['middleware' => 'auth.user', 'uses' => 'OAuth2SummitSponsorApiController@addSponsorSideImage']); + Route::post('', ['middleware' => 'auth.user', 'uses' => '@addSponsorSideImage']); Route::delete('', ['middleware' => 'auth.user', 'uses' => 'OAuth2SummitSponsorApiController@deleteSponsorSideImage']); }); From 173f3a7a954231f2fc6c41970eaf88d319627006 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 31 Dec 2025 18:58:21 +0000 Subject: [PATCH 2/6] chore: revert to main Signed-off-by: Matias Perrone --- .../Protected/Summit/OAuth2SummitsEventTypesApiController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php index d700c3a41..e31531221 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php @@ -440,4 +440,4 @@ public function removeSummitDocument($summit_id, $event_type_id, $document_id) )); }); } -} \ No newline at end of file +} From 8efa3bf9229a25ab3654f91335a76c0558449455 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 31 Dec 2025 18:59:21 +0000 Subject: [PATCH 3/6] chore: fix/add OpenAPI incorrect or missing annotations Signed-off-by: Matias Perrone --- .../OAuth2SummitSponsorApiController.php | 259 +++++++++--------- 1 file changed, 122 insertions(+), 137 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php index 6490ade9d..06ed4786c 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php @@ -262,64 +262,23 @@ protected function updateSerializerType(): string{ ] ], 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: 'order', - in: 'query', - required: false, - schema: new OA\Schema(type: 'string'), - description: 'Order by field (e.g., +id, -company_name)' - ), - new OA\Parameter( - name: 'expand', - in: 'query', - required: false, - schema: new OA\Schema(type: 'string'), - description: 'Expand relationships (company)' - ), - new OA\Parameter( - name: 'fields', - in: 'query', - required: false, - schema: new OA\Schema(type: 'string'), - description: 'Fields to include (id,company_name)' - ), - new OA\Parameter( - name: 'filter', - in: 'query', - required: false, - schema: new OA\Schema(type: 'string'), - description: 'Filter expression (e.g., is_published==true)' - ), + 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: 'order', in: 'query', required: false, schema: new OA\Schema(type: 'string'), description: 'Order by field (e.g., +id, -company_name)'), + new OA\Parameter(name: 'expand', in: 'query', required: false, schema: new OA\Schema(type: 'string'), description: 'Expand relationships (company)'), + new OA\Parameter(name: 'fields', in: 'query', required: false, schema: new OA\Schema(type: 'string'), description: 'Fields to include (id,company_name)'), + new OA\Parameter(name: 'filter', in: 'query', required: false, schema: new OA\Schema(type: 'string'), description: 'Filter expression (e.g., is_published==true)'), ], responses: [ new OA\Response( - response: 200, - description: 'Success' + response: Response::HTTP_OK, + description: 'Success', + content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') ), 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_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -369,13 +328,39 @@ public function getAllBySummitV2($summit_id){ ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Success', content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') ), 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_NOT_FOUND, description: "Not Found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] + + #[OA\Get( + path: "/api/public/v1/summits/all/{id}/sponsors", + description: "Get all sponsors for a summit (Public API)", + summary: 'Read Sponsors by Summit (Public)', + operationId: 'getSponsorsBySummitPublic', + tags: ['Sponsors'], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + ], + responses: [ + new OA\Response( + response: Response::HTTP_OK, + description: 'Success', + content: new OA\JsonContent(type: 'array', items: new OA\Items(ref: '#/components/schemas/Sponsor')) + ), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -448,14 +433,14 @@ protected function addChild(Summit $summit, array $payload): IEntity ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Created', content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') ), 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_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") ] @@ -573,14 +558,14 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Success', content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') ), 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_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") ] @@ -637,13 +622,13 @@ public function updateV2($summit_id, $child_id){ ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Success', content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') ), 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_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -717,13 +702,13 @@ public function addSponsorUser($summit_id, $sponsor_id, $member_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Success', content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') ), 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_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -811,13 +796,13 @@ public function removeSponsorUser($summit_id, $sponsor_id, $member_id) ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Created', content: new OA\JsonContent(ref: '#/components/schemas/File') ), 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_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") ] @@ -880,12 +865,12 @@ public function addSponsorSideImage(LaravelRequest $request, $summit_id, $sponso ], responses: [ new OA\Response( - response: 204, + 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"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -966,13 +951,13 @@ public function deleteSponsorSideImage($summit_id, $sponsor_id) ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Created', content: new OA\JsonContent(ref: '#/components/schemas/File') ), 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_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") ] @@ -1035,12 +1020,12 @@ public function addSponsorHeaderImage(LaravelRequest $request, $summit_id, $spon ], responses: [ new OA\Response( - response: 204, + 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"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -1115,13 +1100,13 @@ public function deleteSponsorHeaderImage($summit_id, $sponsor_id) ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Created', content: new OA\JsonContent(ref: '#/components/schemas/File') ), 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_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") ] @@ -1190,12 +1175,12 @@ public function addSponsorHeaderImageMobile(LaravelRequest $request, $summit_id, ], responses: [ new OA\Response( - response: 204, + 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"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -1270,13 +1255,13 @@ public function deleteSponsorHeaderImageMobile($summit_id, $sponsor_id) ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Created', content: new OA\JsonContent(ref: '#/components/schemas/File') ), 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_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") ] @@ -1345,12 +1330,12 @@ public function addSponsorCarouselAdvertiseImage(LaravelRequest $request, $summi ], responses: [ new OA\Response( - response: 204, + 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"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -1444,12 +1429,12 @@ public function deleteSponsorCarouselAdvertiseImage($summit_id, $sponsor_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Success' ), 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_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -1544,13 +1529,13 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Created', content: new OA\JsonContent(ref: '#/components/schemas/SponsorAd') ), 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_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") ] @@ -1640,13 +1625,13 @@ public function addAd($summit_id, $sponsor_id) ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Created', content: new OA\JsonContent(ref: '#/components/schemas/File') ), 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_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") ] @@ -1723,12 +1708,12 @@ public function addAdImage(LaravelRequest $request, $summit_id, $sponsor_id, $ad ], responses: [ new OA\Response( - response: 204, + 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"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -1797,11 +1782,11 @@ public function removeAdImage($summit_id, $sponsor_id, $ad_id) ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Ad updated successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -1874,11 +1859,11 @@ public function updateAd($summit_id, $sponsor_id, $ad_id) ], responses: [ new OA\Response( - response: 204, + response: Response::HTTP_NO_CONTENT, description: 'Ad deleted successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -1946,11 +1931,11 @@ public function deleteAd($summit_id, $sponsor_id, $ad_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Ad retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2049,11 +2034,11 @@ public function getAd($summit_id, $sponsor_id, $ad_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Sponsor materials retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2151,12 +2136,12 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Material created successfully', content: new OA\JsonContent(ref: '#/components/schemas/SponsorMaterial') ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -2232,11 +2217,11 @@ public function addMaterial($summit_id, $sponsor_id) ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Material updated successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -2309,11 +2294,11 @@ public function updateMaterial($summit_id, $sponsor_id, $material_id) ], responses: [ new OA\Response( - response: 204, + response: Response::HTTP_NO_CONTENT, description: 'Material deleted successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2381,11 +2366,11 @@ public function deleteMaterial($summit_id, $sponsor_id, $material_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Material retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2484,11 +2469,11 @@ public function getMaterial($summit_id, $sponsor_id, $material_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Social networks retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2582,12 +2567,12 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Social network created successfully', content: new OA\JsonContent(ref: '#/components/schemas/SponsorSocialNetwork') ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -2662,11 +2647,11 @@ public function addSocialNetwork($summit_id, $sponsor_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Social network retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2745,11 +2730,11 @@ public function getSocialNetwork($summit_id, $sponsor_id, $social_network_id) ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Social network updated successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -2822,11 +2807,11 @@ public function updateSocialNetwork($summit_id, $sponsor_id, $social_network_id) ], responses: [ new OA\Response( - response: 204, + response: Response::HTTP_NO_CONTENT, description: 'Social network deleted successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2913,11 +2898,11 @@ public function deleteSocialNetwork($summit_id, $sponsor_id, $social_network_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Extra questions retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -2986,7 +2971,7 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { } #[OA\Get( - path: "/api/v1/summits/{id}/sponsor-extra-questions-metadata", + path: "/api/v1/summits/{id}/sponsors/all/extra-questions/metadata", description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators, summary: 'Read Sponsor Extra Questions Metadata', operationId: 'getSponsorExtraQuestionsMetadata', @@ -3013,11 +2998,11 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Extra questions metadata retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -3074,12 +3059,12 @@ public function getMetadata($summit_id) ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Extra question created successfully', content: new OA\JsonContent(ref: '#/components/schemas/SummitSponsorExtraQuestionType') ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -3160,11 +3145,11 @@ public function addExtraQuestion($summit_id, $sponsor_id) ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Extra question retrieved successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -3248,11 +3233,11 @@ public function getExtraQuestion($summit_id, $sponsor_id, $extra_question_id) ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Extra question updated successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -3333,11 +3318,11 @@ public function updateExtraQuestion($summit_id, $sponsor_id, $extra_question_id) ], responses: [ new OA\Response( - response: 204, + response: Response::HTTP_NO_CONTENT, description: 'Extra question deleted successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] @@ -3416,12 +3401,12 @@ public function deleteExtraQuestion($summit_id, $sponsor_id, $extra_question_id) ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Question value created successfully', content: new OA\JsonContent(ref: '#/components/schemas/ExtraQuestionTypeValue') ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -3516,11 +3501,11 @@ function ($payload, $summit, $sponsor_id, $question_id) { ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Question value updated successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -3614,11 +3599,11 @@ function ($value_id, $payload, $summit, $sponsor_id, $extra_question_id) { ], responses: [ new OA\Response( - response: 204, + response: Response::HTTP_NO_CONTENT, description: 'Question value deleted successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -3689,11 +3674,11 @@ public function deleteExtraQuestionValue($summit_id, $sponsor_id, $extra_questio ], responses: [ new OA\Response( - response: 200, + response: Response::HTTP_OK, description: 'Lead report settings metadata retrieved' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -3753,12 +3738,12 @@ public function getLeadReportSettingsMetadata($summit_id, $sponsor_id) { ), responses: [ new OA\Response( - response: 201, + response: Response::HTTP_CREATED, description: 'Lead report settings created successfully', content: new OA\JsonContent(ref: '#/components/schemas/SummitLeadReportSetting') ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] @@ -3830,11 +3815,11 @@ public function addLeadReportSettings($summit_id, $sponsor_id) { ), responses: [ new OA\Response( - response: 200, + response: Response::HTTP_CREATED, description: 'Lead report settings updated successfully' ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error") ] From f23983bfeee2c2c508004bcd69f93a4f023b1e49 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 31 Dec 2025 20:33:35 +0000 Subject: [PATCH 4/6] chore: revert to main Signed-off-by: Matias Perrone --- .../Protected/Summit/OAuth2SummitsEventTypesApiController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php index e31531221..d700c3a41 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitsEventTypesApiController.php @@ -440,4 +440,4 @@ public function removeSummitDocument($summit_id, $event_type_id, $document_id) )); }); } -} +} \ No newline at end of file From bff2a39c9cb61541a24f0e6837ace706633d1b7c Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 31 Dec 2025 20:33:49 +0000 Subject: [PATCH 5/6] chore: fix schemas and paths Signed-off-by: Matias Perrone --- .../OAuth2SummitSponsorApiController.php | 1049 +++++++++++------ .../Models/ExtraQuestionTypeSchema.php | 45 + .../Models/ExtraQuestionTypeValueSchema.php | 10 +- app/Swagger/Models/SponsorBaseSchema.php | 54 + app/Swagger/Models/SponsorSchema.php | 24 +- app/Swagger/Models/SponsorV2Schema.php | 27 + app/Swagger/Models/SubQuestionRuleSchema.php | 38 + 7 files changed, 848 insertions(+), 399 deletions(-) create mode 100644 app/Swagger/Models/ExtraQuestionTypeSchema.php create mode 100644 app/Swagger/Models/SponsorBaseSchema.php create mode 100644 app/Swagger/Models/SponsorV2Schema.php create mode 100644 app/Swagger/Models/SubQuestionRuleSchema.php diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php index 06ed4786c..388e8c8cc 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitSponsorApiController.php @@ -1,4 +1,5 @@ -summit_repository = $summit_repository; $this->sponsor_ads_repository = $sponsor_ads_repository; @@ -171,7 +171,8 @@ protected function getOrderRules(): array * @param Filter $filter * @return Filter */ - protected function applyExtraFilters(Filter $filter):Filter { + protected function applyExtraFilters(Filter $filter): Filter + { // this is the authz code for sponsors users ... $current_member = $this->resource_server_context->getCurrentUser(); @@ -182,15 +183,17 @@ protected function applyExtraFilters(Filter $filter):Filter { if (!is_null($summit)) { // add filter for summit . - $filter->addFilterCondition(FilterElement::makeEqual("summit_id",$summit_id)); - if(!is_null($current_member)) { + $filter->addFilterCondition(FilterElement::makeEqual("summit_id", $summit_id)); + if (!is_null($current_member)) { // check AUTHZ for sponsors - if($current_member->isAuthzFor($summit)) return $filter; + if ($current_member->isAuthzFor($summit)) + return $filter; // add filter for sponsor user if ($current_member->isSponsorUser()) { $sponsor_ids = $current_member->getSponsorMembershipIds($summit); // is allowed sponsors are empty, add dummy value - if (!count($sponsor_ids)) $sponsor_ids[] = 0; + if (!count($sponsor_ids)) + $sponsor_ids[] = 0; $filter->addFilterCondition ( FilterElement::makeEqual @@ -218,25 +221,29 @@ function getAddValidationRules(array $payload): array SponsorValidationRulesFactory::buildForAddV2($payload); } - protected function serializerType():string{ + protected function serializerType(): string + { return $this->serializer_version == 1 ? SerializerRegistry::SerializerType_Public : SerializerRegistry::SerializerType_PublicV2; } - public function getChildSerializer():string{ + public function getChildSerializer(): string + { return $this->serializer_version == 1 ? SerializerRegistry::SerializerType_Public : SerializerRegistry::SerializerType_PublicV2; } - protected function addSerializerType():string{ + protected function addSerializerType(): string + { return $this->serializer_version == 1 ? SerializerRegistry::SerializerType_Public : SerializerRegistry::SerializerType_PublicV2; } - protected function updateSerializerType(): string{ + protected function updateSerializerType(): string + { return $this->serializer_version == 1 ? SerializerRegistry::SerializerType_Public : SerializerRegistry::SerializerType_PublicV2; @@ -248,10 +255,14 @@ protected function updateSerializerType(): string{ summary: 'Read Sponsors by Summit (V2)', operationId: 'getSponsorsBySummitV2', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -274,7 +285,7 @@ protected function updateSerializerType(): string{ new OA\Response( response: Response::HTTP_OK, description: 'Success', - content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + content: new OA\JsonContent(ref: '#/components/schemas/SponsorV2') ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), @@ -282,25 +293,30 @@ protected function updateSerializerType(): string{ new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error"), ] )] - /** + /** * @param $summit_id * @return \Illuminate\Http\JsonResponse|mixed */ - public function getAllBySummitV2($summit_id){ + public function getAllBySummitV2($summit_id) + { $this->serializer_version = 2; return $this->getAllBySummit($summit_id); } #[OA\Get( - path: "/api/v2/summits/{id}/sponsors/{sponsor_id}", + path: "/api/public/v1/summits/all/{id}/sponsors", description: "Get a specific sponsor by id", - summary: 'Read Sponsor by ID (V2)', - operationId: 'getSponsorByIdV2', - tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + summary: 'Get Sponsors by Summit ID (Public)', + operationId: 'getSponsorsV2BySummitPublic', + tags: ['Sponsors (Public)'], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -330,7 +346,7 @@ public function getAllBySummitV2($summit_id){ new OA\Response( response: Response::HTTP_OK, description: 'Success', - content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + content: new OA\JsonContent(ref: '#/components/schemas/SponsorV2') ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), @@ -338,12 +354,21 @@ public function getAllBySummitV2($summit_id){ new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] + /** + * @param $summit_id + * @return \Illuminate\Http\JsonResponse|mixed + */ + public function getAllBySummitPublic($summit_id) + { + $this->serializer_version = 2; + return $this->getAllBySummit($summit_id); + } #[OA\Get( - path: "/api/public/v1/summits/all/{id}/sponsors", + path: "/api/v2/summits/{id}/sponsors/{sponsor_id}", description: "Get all sponsors for a summit (Public API)", - summary: 'Read Sponsors by Summit (Public)', - operationId: 'getSponsorsBySummitPublic', + summary: 'Read Sponsors by Summit', + operationId: 'getSponsorsV2BySummit', tags: ['Sponsors'], parameters: [ new OA\Parameter( @@ -358,28 +383,19 @@ public function getAllBySummitV2($summit_id){ new OA\Response( response: Response::HTTP_OK, description: 'Success', - content: new OA\JsonContent(type: 'array', items: new OA\Items(ref: '#/components/schemas/Sponsor')) + content: new OA\JsonContent(type: 'array', items: new OA\Items(ref: '#/components/schemas/SponsorV2')) ), new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] - /** - * @param $summit_id - * @return \Illuminate\Http\JsonResponse|mixed - */ - public function getAllBySummitPublic($summit_id) - { - $this->serializer_version = 2; - return $this->getAllBySummit($summit_id); - } - /** * @param $summit_id * @param $child_id * @return mixed */ - public function getV2($summit_id, $child_id){ + public function getV2($summit_id, $child_id) + { $this->serializer_version = 2; return $this->get($summit_id, $child_id); } @@ -397,7 +413,7 @@ protected function addChild(Summit $summit, array $payload): IEntity $is_authz = $application_type == IResourceServerContext::ApplicationType_Service || (!is_null($current_member) && $current_member->isAuthzFor($summit)); - if(!$is_authz) + if (!$is_authz) throw new HTTP403ForbiddenException("You are not allowed to perform this action."); return $this->service->addSponsor($summit, $payload); } @@ -408,9 +424,13 @@ protected function addChild(Summit $summit, array $payload): IEntity summary: 'Create Sponsor (V2)', operationId: 'addSponsorV2', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -435,7 +455,7 @@ protected function addChild(Summit $summit, array $payload): IEntity new OA\Response( response: Response::HTTP_CREATED, description: 'Created', - content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + content: new OA\JsonContent(ref: '#/components/schemas/SponsorV2') ), new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), @@ -449,7 +469,8 @@ protected function addChild(Summit $summit, array $payload): IEntity * @param $summit_id * @return \Illuminate\Http\JsonResponse|mixed */ - public function addV2($summit_id){ + public function addV2($summit_id) + { $this->serializer_version = 2; $this->add_validation_rules_version = 2; return $this->add($summit_id); @@ -472,7 +493,7 @@ protected function deleteChild(Summit $summit, $child_id): void { // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit)) + if (!$current_member->isAuthzFor($summit)) throw new HTTP403ForbiddenException("You are not allowed to perform this action."); $this->service->deleteSponsor($summit, $child_id); @@ -483,12 +504,17 @@ protected function getChildFromSummit(Summit $summit, $child_id): ?IEntity $current_member = $this->resource_server_context->getCurrentUser(); $sponsor = $summit->getSummitSponsorById($child_id); - if(is_null($sponsor)) return null; + if (is_null($sponsor)) + return null; // service account - if(is_null($current_member)) return $sponsor; - if($current_member->isAdmin()) return $sponsor; - if($current_member->hasSponsorMembershipsFor($summit, $sponsor)) return $sponsor; - if($current_member->isSummitAdmin() && $current_member->isSummitAllowed($summit)) return $sponsor; + if (is_null($current_member)) + return $sponsor; + if ($current_member->isAdmin()) + return $sponsor; + if ($current_member->hasSponsorMembershipsFor($summit, $sponsor)) + return $sponsor; + if ($current_member->isSummitAdmin() && $current_member->isSummitAllowed($summit)) + return $sponsor; return null; } @@ -514,7 +540,7 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I { // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit)) + if (!$current_member->isAuthzFor($summit)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); return $this->service->updateSponsor($summit, $child_id, $payload); @@ -526,9 +552,13 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I summary: 'Update Sponsor (V2)', operationId: 'updateSponsorV2', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -560,7 +590,7 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I new OA\Response( response: Response::HTTP_CREATED, description: 'Success', - content: new OA\JsonContent(ref: '#/components/schemas/Sponsor') + content: new OA\JsonContent(ref: '#/components/schemas/SponsorV2') ), new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), @@ -570,12 +600,13 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] - /** + /** * @param $summit_id * @param $child_id * @return mixed */ - public function updateV2($summit_id, $child_id){ + public function updateV2($summit_id, $child_id) + { $this->serializer_version = 2; $this->add_validation_rules_version = 2; return $this->update($summit_id, $child_id); @@ -587,9 +618,13 @@ public function updateV2($summit_id, $child_id){ summary: 'Add Sponsor User', operationId: 'addSponsorUser', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -642,14 +677,16 @@ public function addSponsorUser($summit_id, $sponsor_id, $member_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id, $member_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->getResourceServerContext())->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!is_null($current_member) && !$current_member->isAuthzFor($summit)) + if (!is_null($current_member) && !$current_member->isAuthzFor($summit)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); $sponsor = $this->service->addSponsorUser($summit, $sponsor_id, $member_id); @@ -667,9 +704,13 @@ public function addSponsorUser($summit_id, $sponsor_id, $member_id) summary: 'Remove Sponsor User', operationId: 'removeSponsorUser', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -722,11 +763,12 @@ public function removeSponsorUser($summit_id, $sponsor_id, $member_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id, $member_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->getResourceServerContext())->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit)) + if (!$current_member->isAuthzFor($summit)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); $sponsor = $this->service->removeSponsorUser($summit, $sponsor_id, $member_id); @@ -750,9 +792,13 @@ public function removeSponsorUser($summit_id, $sponsor_id, $member_id) summary: 'Add Sponsor Side Image', operationId: 'addSponsorSideImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -812,7 +858,8 @@ public function addSponsorSideImage(LaravelRequest $request, $summit_id, $sponso return $this->processRequest(function () use ($request, $summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $file = $request->file('file'); if (is_null($file)) { @@ -837,9 +884,13 @@ public function addSponsorSideImage(LaravelRequest $request, $summit_id, $sponso summary: 'Delete Sponsor Side Image', operationId: 'deleteSponsorSideImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -884,7 +935,8 @@ public function deleteSponsorSideImage($summit_id, $sponsor_id) return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorSideImage($summit, $sponsor_id); @@ -905,9 +957,13 @@ public function deleteSponsorSideImage($summit_id, $sponsor_id) summary: 'Add Sponsor Header Image', operationId: 'addSponsorHeaderImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -967,7 +1023,8 @@ public function addSponsorHeaderImage(LaravelRequest $request, $summit_id, $spon return $this->processRequest(function () use ($request, $summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $file = $request->file('file'); if (is_null($file)) { @@ -992,9 +1049,13 @@ public function addSponsorHeaderImage(LaravelRequest $request, $summit_id, $spon summary: 'Delete Sponsor Header Image', operationId: 'deleteSponsorHeaderImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1039,7 +1100,8 @@ public function deleteSponsorHeaderImage($summit_id, $sponsor_id) return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorHeaderImage($summit, intval($sponsor_id)); @@ -1054,9 +1116,13 @@ public function deleteSponsorHeaderImage($summit_id, $sponsor_id) summary: 'Add Sponsor Header Image Mobile', operationId: 'addSponsorHeaderImageMobile', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1122,7 +1188,8 @@ public function addSponsorHeaderImageMobile(LaravelRequest $request, $summit_id, return $this->processRequest(function () use ($request, $summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $file = $request->file('file'); if (is_null($file)) { @@ -1147,9 +1214,13 @@ public function addSponsorHeaderImageMobile(LaravelRequest $request, $summit_id, summary: 'Delete Sponsor Header Image Mobile', operationId: 'deleteSponsorHeaderImageMobile', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1194,7 +1265,8 @@ public function deleteSponsorHeaderImageMobile($summit_id, $sponsor_id) return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorHeaderImageMobile($summit, intval($sponsor_id)); @@ -1209,9 +1281,13 @@ public function deleteSponsorHeaderImageMobile($summit_id, $sponsor_id) summary: 'Add Sponsor Carousel Advertise Image', operationId: 'addSponsorCarouselAdvertiseImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1277,7 +1353,8 @@ public function addSponsorCarouselAdvertiseImage(LaravelRequest $request, $summi return $this->processRequest(function () use ($request, $summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $file = $request->file('file'); if (is_null($file)) { @@ -1302,9 +1379,13 @@ public function addSponsorCarouselAdvertiseImage(LaravelRequest $request, $summi summary: 'Delete Sponsor Carousel Advertise Image', operationId: 'deleteSponsorCarouselAdvertiseImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1349,7 +1430,8 @@ public function deleteSponsorCarouselAdvertiseImage($summit_id, $sponsor_id) return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorCarouselAdvertiseImage($summit, intval($sponsor_id)); @@ -1370,10 +1452,14 @@ public function deleteSponsorCarouselAdvertiseImage($summit_id, $sponsor_id) summary: 'Read Sponsor Ads', operationId: 'getSponsorAds', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1447,10 +1533,12 @@ public function getAds($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); return $this->_getAll( function () { @@ -1497,9 +1585,13 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { summary: 'Add Sponsor Ad', operationId: 'addSponsorAd', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1549,19 +1641,21 @@ public function addAd($summit_id, $sponsor_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $payload = $this->getJsonPayload(SponsorAdValidationRulesFactory::buildForAdd(), true); $ad = $this->service->addSponsorAd($summit, intval($sponsor_id), $payload); - return $this->created(SerializerRegistry::getInstance() - ->getSerializer($ad, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->created( + SerializerRegistry::getInstance() + ->getSerializer($ad, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -1572,9 +1666,13 @@ public function addAd($summit_id, $sponsor_id) summary: 'Add Sponsor Ad Image', operationId: 'addSponsorAdImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1648,7 +1746,8 @@ public function addAdImage(LaravelRequest $request, $summit_id, $sponsor_id, $ad return $this->processRequest(function () use ($request, $summit_id, $sponsor_id, $ad_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $file = $request->file('file'); if (is_null($file)) { @@ -1673,9 +1772,13 @@ public function addAdImage(LaravelRequest $request, $summit_id, $sponsor_id, $ad summary: 'Remove Sponsor Ad Image', operationId: 'removeSponsorAdImage', tags: ['Sponsors'], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -1728,7 +1831,8 @@ public function removeAdImage($summit_id, $sponsor_id, $ad_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $ad_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorAdImage($summit, intval($sponsor_id), intval($ad_id)); @@ -1750,9 +1854,13 @@ public function removeAdImage($summit_id, $sponsor_id, $ad_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -1801,19 +1909,21 @@ public function updateAd($summit_id, $sponsor_id, $ad_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id, $ad_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $payload = $this->getJsonPayload(SponsorAdValidationRulesFactory::buildForUpdate(), true); $ad = $this->service->updateSponsorAd($summit, intval($sponsor_id), intval($ad_id), $payload); - return $this->updated(SerializerRegistry::getInstance() - ->getSerializer($ad, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->updated( + SerializerRegistry::getInstance() + ->getSerializer($ad, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -1831,9 +1941,13 @@ public function updateAd($summit_id, $sponsor_id, $ad_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -1878,7 +1992,8 @@ public function deleteAd($summit_id, $sponsor_id, $ad_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $ad_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorAd($summit, intval($sponsor_id), intval($ad_id)); @@ -1902,10 +2017,14 @@ public function deleteAd($summit_id, $sponsor_id, $ad_id) IGroup::SponsorExternalUsers, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -1950,21 +2069,25 @@ public function getAd($summit_id, $sponsor_id, $ad_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $ad_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $ad = $sponsor->getAdById(intval($ad_id)); - if (is_null($ad)) return $this->error404(); - - return $this->ok(SerializerRegistry::getInstance() - ->getSerializer($ad, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + if (is_null($ad)) + return $this->error404(); + + return $this->ok( + SerializerRegistry::getInstance() + ->getSerializer($ad, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -1986,10 +2109,14 @@ public function getAd($summit_id, $sponsor_id, $ad_id) IGroup::SponsorExternalUsers, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2052,10 +2179,12 @@ public function getMaterials($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); return $this->_getAll( function () { @@ -2067,7 +2196,7 @@ function () { function () { return [ 'sponsor_id' => 'sometimes|int', - 'type' => 'sometimes|string|in:'.implode(',', SponsorMaterial::ValidTypes) + 'type' => 'sometimes|string|in:' . implode(',', SponsorMaterial::ValidTypes) ]; }, function () { @@ -2111,9 +2240,13 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2155,19 +2288,21 @@ public function addMaterial($summit_id, $sponsor_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $payload = $this->getJsonPayload(SponsorMaterialValidationRulesFactory::buildForAdd(), true); $material = $this->service->addSponsorMaterial($summit, intval($sponsor_id), $payload); - return $this->created(SerializerRegistry::getInstance() - ->getSerializer($material, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->created( + SerializerRegistry::getInstance() + ->getSerializer($material, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -2185,9 +2320,13 @@ public function addMaterial($summit_id, $sponsor_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2236,19 +2375,21 @@ public function updateMaterial($summit_id, $sponsor_id, $material_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id, $material_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $payload = $this->getJsonPayload(SponsorMaterialValidationRulesFactory::buildForUpdate(), true); $material = $this->service->updateSponsorMaterial($summit, intval($sponsor_id), intval($material_id), $payload); - return $this->updated(SerializerRegistry::getInstance() - ->getSerializer($material, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->updated( + SerializerRegistry::getInstance() + ->getSerializer($material, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -2266,9 +2407,13 @@ public function updateMaterial($summit_id, $sponsor_id, $material_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2313,7 +2458,8 @@ public function deleteMaterial($summit_id, $sponsor_id, $material_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $material_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorMaterial($summit, intval($sponsor_id), intval($material_id)); @@ -2337,10 +2483,14 @@ public function deleteMaterial($summit_id, $sponsor_id, $material_id) IGroup::SponsorExternalUsers, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2385,21 +2535,25 @@ public function getMaterial($summit_id, $sponsor_id, $material_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $material_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $material = $sponsor->getMaterialById(intval($material_id)); - if (is_null($material)) return $this->error404(); - - return $this->ok(SerializerRegistry::getInstance() - ->getSerializer($material, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + if (is_null($material)) + return $this->error404(); + + return $this->ok( + SerializerRegistry::getInstance() + ->getSerializer($material, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -2421,10 +2575,14 @@ public function getMaterial($summit_id, $sponsor_id, $material_id) IGroup::SponsorExternalUsers, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2486,10 +2644,12 @@ public function getSocialNetworks($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); return $this->_getAll( function () { @@ -2542,9 +2702,13 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2586,19 +2750,21 @@ public function addSocialNetwork($summit_id, $sponsor_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $payload = $this->getJsonPayload(SponsorSocialNetworkValidationRulesFactory::buildForAdd(), true); $social_network = $this->service->addSponsorSocialNetwork($summit, intval($sponsor_id), $payload); - return $this->created(SerializerRegistry::getInstance() - ->getSerializer($social_network, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->created( + SerializerRegistry::getInstance() + ->getSerializer($social_network, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -2618,10 +2784,14 @@ public function addSocialNetwork($summit_id, $sponsor_id) IGroup::SponsorExternalUsers, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2666,21 +2836,25 @@ public function getSocialNetwork($summit_id, $sponsor_id, $social_network_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $social_network_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $social_network = $sponsor->getSocialNetworkById(intval($social_network_id)); - if (is_null($social_network)) return $this->error404(); - - return $this->ok(SerializerRegistry::getInstance() - ->getSerializer($social_network, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + if (is_null($social_network)) + return $this->error404(); + + return $this->ok( + SerializerRegistry::getInstance() + ->getSerializer($social_network, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -2698,9 +2872,13 @@ public function getSocialNetwork($summit_id, $sponsor_id, $social_network_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2749,19 +2927,21 @@ public function updateSocialNetwork($summit_id, $sponsor_id, $social_network_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id, $social_network_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $payload = $this->getJsonPayload(SponsorSocialNetworkValidationRulesFactory::buildForUpdate(), true); $social_network = $this->service->updateSponsorSocialNetwork($summit, intval($sponsor_id), intval($social_network_id), $payload); - return $this->updated(SerializerRegistry::getInstance() - ->getSerializer($social_network, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->updated( + SerializerRegistry::getInstance() + ->getSerializer($social_network, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -2779,9 +2959,13 @@ public function updateSocialNetwork($summit_id, $sponsor_id, $social_network_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2826,7 +3010,8 @@ public function deleteSocialNetwork($summit_id, $sponsor_id, $social_network_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $social_network_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $this->service->deleteSponsorSocialNetwork($summit, intval($sponsor_id), intval($social_network_id)); @@ -2850,10 +3035,14 @@ public function deleteSocialNetwork($summit_id, $sponsor_id, $social_network_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -2914,14 +3103,16 @@ public function deleteSocialNetwork($summit_id, $sponsor_id, $social_network_id) public function getExtraQuestions($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); return $this->_getAll( @@ -2983,10 +3174,14 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3013,7 +3208,8 @@ function ($page, $per_page, $filter, $order, $applyExtraFilters) { public function getMetadata($summit_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); return $this->ok ( @@ -3034,9 +3230,13 @@ public function getMetadata($summit_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3078,27 +3278,30 @@ public function addExtraQuestion($summit_id, $sponsor_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action."); $payload = $this->getJsonPayload(SponsorExtraQuestionValidationRulesFactory::buildForAdd(), true); $extra_question = $this->service->addSponsorExtraQuestion($summit, intval($sponsor_id), $payload); - return $this->created(SerializerRegistry::getInstance() - ->getSerializer($extra_question, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->created( + SerializerRegistry::getInstance() + ->getSerializer($extra_question, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -3116,10 +3319,14 @@ public function addExtraQuestion($summit_id, $sponsor_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3164,26 +3371,30 @@ public function getExtraQuestion($summit_id, $sponsor_id, $extra_question_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $extra_question_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); $extra_question = $sponsor->getExtraQuestionById(intval($extra_question_id)); - if (is_null($extra_question)) return $this->error404(); - - return $this->ok(SerializerRegistry::getInstance() - ->getSerializer($extra_question, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + if (is_null($extra_question)) + return $this->error404(); + + return $this->ok( + SerializerRegistry::getInstance() + ->getSerializer($extra_question, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -3201,9 +3412,13 @@ public function getExtraQuestion($summit_id, $sponsor_id, $extra_question_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3252,27 +3467,30 @@ public function updateExtraQuestion($summit_id, $sponsor_id, $extra_question_id) { return $this->processRequest(function () use ($summit_id, $sponsor_id, $extra_question_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor( $summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); $payload = $this->getJsonPayload(SponsorExtraQuestionValidationRulesFactory::buildForUpdate(), true); $extra_question = $this->service->updateSponsorExtraQuestion($summit, intval($sponsor_id), intval($extra_question_id), $payload); - return $this->updated(SerializerRegistry::getInstance() - ->getSerializer($extra_question, SerializerRegistry::SerializerType_Private) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->updated( + SerializerRegistry::getInstance() + ->getSerializer($extra_question, SerializerRegistry::SerializerType_Private) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -3290,9 +3508,13 @@ public function updateExtraQuestion($summit_id, $sponsor_id, $extra_question_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3337,14 +3559,16 @@ public function deleteExtraQuestion($summit_id, $sponsor_id, $extra_question_id) return $this->processRequest(function () use ($summit_id, $sponsor_id, $extra_question_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); $this->service->deleteSponsorExtraQuestion($summit, intval($sponsor_id), intval($extra_question_id)); @@ -3369,9 +3593,13 @@ public function deleteExtraQuestion($summit_id, $sponsor_id, $extra_question_id) IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3421,29 +3649,35 @@ public function addExtraQuestionValue($summit_id, $sponsor_id, $extra_question_i { return $this->processRequest(function () use ($summit_id, $sponsor_id, $extra_question_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $args = [$summit, intval($sponsor_id), intval($extra_question_id)]; // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor( $summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); return $this->_add( function ($payload) { return ExtraQuestionTypeValueValidationRulesFactory::buildForAdd($payload); }, - function ($payload, $summit, $sponsor_id, $question_id) { + function ($payload, $summit, $sponsor_id, $question_id) { return $this->service->addExtraQuestionValue ( - $summit, intval($sponsor_id), intval($question_id), $payload + $summit, + intval($sponsor_id), + intval($question_id), + $payload ); }, - ...$args); + ...$args + ); }); } @@ -3462,9 +3696,13 @@ function ($payload, $summit, $sponsor_id, $question_id) { IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3522,22 +3760,26 @@ public function updateExtraQuestionValue($summit_id, $sponsor_id, $extra_questio return $this->processRequest(function () use ($summit_id, $sponsor_id, $extra_question_id, $value_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $args = [$summit, intval($sponsor_id), intval($extra_question_id)]; // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor( $summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); - return $this->_update($value_id, function ($payload) { - return ExtraQuestionTypeValueValidationRulesFactory::buildForUpdate($payload); - }, - function ($value_id, $payload, $summit, $sponsor_id, $extra_question_id) { + return $this->_update( + $value_id, + function ($payload) { + return ExtraQuestionTypeValueValidationRulesFactory::buildForUpdate($payload); + }, + function ($value_id, $payload, $summit, $sponsor_id, $extra_question_id) { return $this->service->updateExtraQuestionValue ( $summit, @@ -3546,7 +3788,9 @@ function ($value_id, $payload, $summit, $sponsor_id, $extra_question_id) { intval($value_id), $payload ); - }, ...$args); + }, + ...$args + ); }); } @@ -3564,9 +3808,13 @@ function ($value_id, $payload, $summit, $sponsor_id, $extra_question_id) { IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3618,22 +3866,28 @@ public function deleteExtraQuestionValue($summit_id, $sponsor_id, $extra_questio { return $this->processRequest(function () use ($summit_id, $sponsor_id, $extra_question_id, $value_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $args = [$summit, intval($sponsor_id), intval($extra_question_id)]; // authz check $current_member = $this->resource_server_context->getCurrentUser(); - if(!$current_member->isAuthzFor($summit, $sponsor)) + if (!$current_member->isAuthzFor($summit, $sponsor)) throw new HTTP403ForbiddenException("You are not allowed to perform this action"); - return $this->_delete($value_id, function ($value_id, $summit, $sponsor_id, $extra_question_id) { - $this->service->deleteExtraQuestionValue($summit, intval($sponsor_id), intval($extra_question_id), intval($value_id)); - } - , ...$args); + return $this->_delete( + $value_id, + function ($value_id, $summit, $sponsor_id, $extra_question_id) { + $this->service->deleteExtraQuestionValue($summit, intval($sponsor_id), intval($extra_question_id), intval($value_id)); + } + , + ...$args + ); }); } @@ -3652,10 +3906,14 @@ public function deleteExtraQuestionValue($summit_id, $sponsor_id, $extra_questio IGroup::Sponsors, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::ReadSummitData, - SummitScopes::ReadAllSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::ReadSummitData, + SummitScopes::ReadAllSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3687,14 +3945,17 @@ public function deleteExtraQuestionValue($summit_id, $sponsor_id, $extra_questio * @param $sponsor_id * @return mixed */ - public function getLeadReportSettingsMetadata($summit_id, $sponsor_id) { + public function getLeadReportSettingsMetadata($summit_id, $sponsor_id) + { return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); return $this->ok($summit->getLeadReportSettingsMetadata($sponsor)); }); @@ -3713,9 +3974,13 @@ public function getLeadReportSettingsMetadata($summit_id, $sponsor_id) { IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3753,26 +4018,30 @@ public function getLeadReportSettingsMetadata($summit_id, $sponsor_id) { * @param $sponsor_id * @return mixed */ - public function addLeadReportSettings($summit_id, $sponsor_id) { + public function addLeadReportSettings($summit_id, $sponsor_id) + { return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $payload = $this->getJsonPayload(LeadReportSettingsValidationRulesFactory::buildForAdd(), true); $settings = $this->service->addLeadReportSettings($summit, $sponsor->getId(), $payload); - return $this->created(SerializerRegistry::getInstance() - ->getSerializer($settings) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->created( + SerializerRegistry::getInstance() + ->getSerializer($settings) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } @@ -3790,9 +4059,13 @@ public function addLeadReportSettings($summit_id, $sponsor_id) { IGroup::SummitAdministrators, ] ], - security: [['summit_sponsor_oauth2' => [ - SummitScopes::WriteSummitData, - ]]], + security: [ + [ + 'summit_sponsor_oauth2' => [ + SummitScopes::WriteSummitData, + ] + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -3829,27 +4102,31 @@ public function addLeadReportSettings($summit_id, $sponsor_id) { * @param $sponsor_id * @return mixed */ - public function updateLeadReportSettings($summit_id, $sponsor_id) { + public function updateLeadReportSettings($summit_id, $sponsor_id) + { return $this->processRequest(function () use ($summit_id, $sponsor_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find($summit_id); - if (is_null($summit)) return $this->error404(); + if (is_null($summit)) + return $this->error404(); $sponsor = $summit->getSummitSponsorById(intval($sponsor_id)); - if (is_null($sponsor)) return $this->error404(); + if (is_null($sponsor)) + return $this->error404(); $payload = $this->getJsonPayload(LeadReportSettingsValidationRulesFactory::buildForUpdate(), true); $settings = $this->service->updateLeadReportSettings($summit, $sponsor->getId(), $payload); - return $this->updated(SerializerRegistry::getInstance() - ->getSerializer($settings) - ->serialize( - SerializerUtils::getExpand(), - SerializerUtils::getFields(), - SerializerUtils::getRelations() - ) + return $this->updated( + SerializerRegistry::getInstance() + ->getSerializer($settings) + ->serialize( + SerializerUtils::getExpand(), + SerializerUtils::getFields(), + SerializerUtils::getRelations() + ) ); }); } -} +} \ No newline at end of file diff --git a/app/Swagger/Models/ExtraQuestionTypeSchema.php b/app/Swagger/Models/ExtraQuestionTypeSchema.php new file mode 100644 index 000000000..eb8cb5299 --- /dev/null +++ b/app/Swagger/Models/ExtraQuestionTypeSchema.php @@ -0,0 +1,45 @@ + Date: Wed, 31 Dec 2025 20:40:22 +0000 Subject: [PATCH 6/6] chore: revert to main Signed-off-by: Matias Perrone --- routes/api_v1.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/api_v1.php b/routes/api_v1.php index 86abbd1e0..4839320f9 100644 --- a/routes/api_v1.php +++ b/routes/api_v1.php @@ -1228,7 +1228,7 @@ // side image Route::group(['prefix' => 'side-image'], function () { - Route::post('', ['middleware' => 'auth.user', 'uses' => '@addSponsorSideImage']); + Route::post('', ['middleware' => 'auth.user', 'uses' => 'OAuth2SummitSponsorApiController@addSponsorSideImage']); Route::delete('', ['middleware' => 'auth.user', 'uses' => 'OAuth2SummitSponsorApiController@deleteSponsorSideImage']); });