From b22d2f05f6279b42572bd54e9f5d3607c4b7a18b Mon Sep 17 00:00:00 2001 From: Jose Andres Tejerina Date: Fri, 14 Nov 2025 13:34:46 -0300 Subject: [PATCH 1/3] feat: Add openapi documentation for OAuth2SummitAttendeeNotesApiController --- ...OAuth2SummitAttendeeNotesApiController.php | 273 +++++++++++++++--- app/Swagger/SummitAttendeeNoteSchemas.php | 69 +++++ .../SummitAttendeeNotesAuthScheme.php | 30 ++ 3 files changed, 335 insertions(+), 37 deletions(-) create mode 100644 app/Swagger/SummitAttendeeNoteSchemas.php create mode 100644 app/Swagger/security/SummitAttendeeNotesAuthScheme.php diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php index 7e3bb2a91..3128d9eec 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php @@ -13,13 +13,17 @@ **/ use App\Http\Utils\EpochCellFormatter; +use App\Models\Foundation\Main\IGroup; use App\Models\Foundation\Summit\Repositories\ISummitAttendeeNoteRepository; use App\ModelSerializers\SerializerUtils; +use App\Security\SummitScopes; use App\Services\Model\IAttendeeService; use models\oauth2\IResourceServerContext; use models\summit\ISummitAttendeeRepository; use models\summit\ISummitRepository; use ModelSerializers\SerializerRegistry; +use OpenApi\Attributes as OA; +use Symfony\Component\HttpFoundation\Response; use utils\Filter; use utils\FilterElement; @@ -74,6 +78,35 @@ public function __construct $this->attendee_service = $attendee_service; } + #[OA\Get( + path: "/api/v1/summits/{id}/attendees/all/notes", + summary: "Get all attendee notes for a summit", + description: "Returns all notes for all attendees in the summit. Admin access required.", + operationId: 'getAllAttendeeNotes', + tags: ["AttendeeNotes"], + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::ReadAllSummitData, + SummitScopes::ReadAttendeeNotesData, + ]]], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "page", description: "Page number", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 1)), + new OA\Parameter(name: "per_page", description: "Items per page", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 10)), + new OA\Parameter(name: "filter", description: "Filter query", in: "query", required: false, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "order", description: "Order by", in: "query", required: false, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "expand", description: "Expand relations (author, owner, ticket)", in: "query", required: false, schema: new OA\Schema(type: "string")), + ], + responses: [ + new OA\Response( + response: Response::HTTP_OK, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PaginatedAttendeeNotesResponse") + ), + 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"), + ] + )] /** * @param $summit_id * @return mixed @@ -133,10 +166,30 @@ function () { ); } - /** - * @param $summit_id - * @return mixed - */ + #[OA\Get( + path: "/api/v1/summits/{id}/attendees/all/notes/csv", + summary: "Export all attendee notes in CSV format", + operationId: 'getAllAttendeeNotesCSV', + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::ReadAllSummitData, + SummitScopes::ReadAttendeeNotesData, + ]]], + tags: ["AttendeeNotes"], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "filter", description: "Filter query", in: "query", required: false, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "order", description: "Order by", in: "query", required: false, schema: new OA\Schema(type: "string")), + ], + responses: [ + new OA\Response( + response: Response::HTTP_OK, + description: "CSV file download", + content: new OA\MediaType(mediaType: "text/csv", schema: new OA\Schema(type: "string", format: "binary")) + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + ] + )] public function getAllAttendeeNotesCSV($summit_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->getResourceServerContext())->find($summit_id); @@ -202,11 +255,33 @@ function () { ); } - /** - * @param $summit_id - * @param $attendee_id - * @return mixed - */ + #[OA\Get( + path: "/api/v1/summits/{id}/attendees/{attendee_id}/notes", + summary: "Get all notes for a specific attendee", + operationId: 'getAttendeeNotes', + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::ReadAllSummitData, + SummitScopes::ReadAttendeeNotesData, + ]]], + tags: ["AttendeeNotes"], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + new OA\Parameter(name: "page", description: "Page number", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 1)), + new OA\Parameter(name: "per_page", description: "Items per page", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 10)), + new OA\Parameter(name: "expand", description: "Expand relations (author, owner, ticket)", in: "query", required: false, schema: new OA\Schema(type: "string")), + ], + responses: [ + new OA\Response( + response: Response::HTTP_OK, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PaginatedAttendeeNotesResponse") + ), + 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"), + ] + )] public function getAttendeeNotes($summit_id, $attendee_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->getResourceServerContext())->find($summit_id); @@ -260,11 +335,29 @@ function () { ); } - /** - * @param $summit_id - * @param $attendee_id - * @return mixed - */ + #[OA\Get( + path: "/api/v1/summits/{id}/attendees/{attendee_id}/notes/csv", + summary: "Export notes for a specific attendee in CSV format", + operationId: 'getAttendeeNotesCSV', + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::ReadAllSummitData, + SummitScopes::ReadAttendeeNotesData, + ]]], + tags: ["AttendeeNotes"], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + ], + responses: [ + new OA\Response( + response: Response::HTTP_OK, + description: "CSV file download", + content: new OA\MediaType(mediaType: "text/csv", schema: new OA\Schema(type: "string", format: "binary")) + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + ] + )] public function getAttendeeNotesCSV($summit_id, $attendee_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->getResourceServerContext())->find($summit_id); @@ -328,12 +421,32 @@ function () { ); } - /** - * @param $summit_id - * @param $attendee_id - * @param $note_id - * @return mixed - */ + #[OA\Get( + path: "/api/v1/summits/{id}/attendees/{attendee_id}/notes/{note_id}", + summary: "Get a specific attendee note", + operationId: 'getAttendeeNote', + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::ReadAllSummitData, + SummitScopes::ReadAttendeeNotesData, + ]]], + tags: ["AttendeeNotes"], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + new OA\Parameter(name: "note_id", description: "Note ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + new OA\Parameter(name: "expand", description: "Expand relations (author, owner, ticket)", in: "query", required: false, schema: new OA\Schema(type: "string")), + ], + responses: [ + new OA\Response( + response: Response::HTTP_OK, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/SummitAttendeeNote") + ), + 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"), + ] + )] public function getAttendeeNote($summit_id, $attendee_id, $note_id) { return $this->processRequest(function () use ($summit_id, $attendee_id, $note_id) { @@ -363,11 +476,42 @@ public function getAttendeeNote($summit_id, $attendee_id, $note_id) }); } - /** - * @param $summit_id - * @param $attendee_id - * @return mixed - */ + #[OA\Post( + path: "/api/v1/summits/{id}/attendees/{attendee_id}/notes", + summary: "Add a note to an attendee", + operationId: 'addAttendeeNote', + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::WriteSummitData, + SummitScopes::WriteAttendeeNotesData, + ]]], + tags: ["AttendeeNotes"], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::SummitRegistrationAdmins, + ] + ], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/AttendeeNoteAddRequest") + ), + responses: [ + new OA\Response( + response: Response::HTTP_CREATED, + description: "Created", + content: new OA\JsonContent(ref: "#/components/schemas/SummitAttendeeNote") + ), + 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"), + ] + )] public function addAttendeeNote($summit_id, $attendee_id) { return $this->processRequest(function () use ($summit_id, $attendee_id) { @@ -389,12 +533,44 @@ public function addAttendeeNote($summit_id, $attendee_id) }); } - /** - * @param $summit_id - * @param $attendee_id - * @param $note_id - * @return mixed - */ + #[OA\Put( + path: "/api/v1/summits/{id}/attendees/{attendee_id}/notes/{note_id}", + summary: "Update an attendee note", + operationId: 'updateAttendeeNote', + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::WriteSummitData, + SummitScopes::WriteAttendeeNotesData, + ]]], + tags: ["AttendeeNotes"], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::SummitRegistrationAdmins, + ] + ], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + new OA\Parameter(name: "note_id", description: "Note ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/AttendeeNoteUpdateRequest") + ), + responses: [ + new OA\Response( + response: Response::HTTP_OK, + description: "OK - Note updated successfully", + content: new OA\JsonContent(ref: "#/components/schemas/SummitAttendeeNote") + ), + 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"), + ] + )] public function updateAttendeeNote($summit_id, $attendee_id, $note_id) { return $this->processRequest(function () use ($summit_id, $attendee_id, $note_id) { @@ -416,12 +592,35 @@ public function updateAttendeeNote($summit_id, $attendee_id, $note_id) }); } - /** - * @param $summit_id - * @param $attendee_id - * @param $note_id - * @return mixed - */ + #[OA\Delete( + path: "/api/v1/summits/{id}/attendees/{attendee_id}/notes/{note_id}", + summary: "Delete an attendee note", + operationId: 'deleteAttendeeNote', + security: [['summit_attendee_notes_oauth2' => [ + SummitScopes::WriteSummitData, + SummitScopes::WriteAttendeeNotesData, + ]]], + tags: ["AttendeeNotes"], + x: [ + 'required-groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::SummitAdministrators, + IGroup::SummitRegistrationAdmins, + ] + ], + parameters: [ + new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + new OA\Parameter(name: "note_id", description: "Note ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), + ], + responses: [ + new OA\Response(response: Response::HTTP_NO_CONTENT, description: "No Content - Note deleted successfully"), + 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"), + ] + )] public function deleteAttendeeNote($summit_id, $attendee_id, $note_id) { return $this->processRequest(function () use ($summit_id, $attendee_id, $note_id) { diff --git a/app/Swagger/SummitAttendeeNoteSchemas.php b/app/Swagger/SummitAttendeeNoteSchemas.php new file mode 100644 index 000000000..adbdfaa3f --- /dev/null +++ b/app/Swagger/SummitAttendeeNoteSchemas.php @@ -0,0 +1,69 @@ + 'Read All Summit Data', + SummitScopes::ReadAttendeeNotesData => 'Read Attendee Notes Data', + SummitScopes::WriteSummitData => 'Write Summit Data', + SummitScopes::WriteAttendeeNotesData => 'Write Attendee Notes Data', + ], + ), + ], + ) +] +class SummitAttendeeNotesSecurityScheme +{ +} From 4a1b1a04422eb4b05a9afb3ef24480d5d4f24f79 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Fri, 5 Dec 2025 21:14:57 +0000 Subject: [PATCH 2/3] chore: include PR requested changes --- ...OAuth2SummitAttendeeNotesApiController.php | 34 +++++++++---------- .../SummitAttendeeNotesSecuritySchema.php} | 4 +-- ...mmitBookableRoomsAttributeTypeSecurity.php | 0 3 files changed, 19 insertions(+), 19 deletions(-) rename app/Swagger/{security/SummitAttendeeNotesAuthScheme.php => Security/SummitAttendeeNotesSecuritySchema.php} (91%) rename app/Swagger/{security => Security}/SummitBookableRoomsAttributeTypeSecurity.php (100%) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php index 3128d9eec..8ae1d7136 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitAttendeeNotesApiController.php @@ -83,13 +83,13 @@ public function __construct summary: "Get all attendee notes for a summit", description: "Returns all notes for all attendees in the summit. Admin access required.", operationId: 'getAllAttendeeNotes', - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], security: [['summit_attendee_notes_oauth2' => [ SummitScopes::ReadAllSummitData, SummitScopes::ReadAttendeeNotesData, ]]], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "page", description: "Page number", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 1)), new OA\Parameter(name: "per_page", description: "Items per page", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 10)), new OA\Parameter(name: "filter", description: "Filter query", in: "query", required: false, schema: new OA\Schema(type: "string")), @@ -174,9 +174,9 @@ function () { SummitScopes::ReadAllSummitData, SummitScopes::ReadAttendeeNotesData, ]]], - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "filter", description: "Filter query", in: "query", required: false, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "order", description: "Order by", in: "query", required: false, schema: new OA\Schema(type: "string")), ], @@ -263,9 +263,9 @@ function () { SummitScopes::ReadAllSummitData, SummitScopes::ReadAttendeeNotesData, ]]], - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), new OA\Parameter(name: "page", description: "Page number", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 1)), new OA\Parameter(name: "per_page", description: "Items per page", in: "query", required: false, schema: new OA\Schema(type: "integer", default: 10)), @@ -343,9 +343,9 @@ function () { SummitScopes::ReadAllSummitData, SummitScopes::ReadAttendeeNotesData, ]]], - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), ], responses: [ @@ -429,9 +429,9 @@ function () { SummitScopes::ReadAllSummitData, SummitScopes::ReadAttendeeNotesData, ]]], - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), new OA\Parameter(name: "note_id", description: "Note ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), new OA\Parameter(name: "expand", description: "Expand relations (author, owner, ticket)", in: "query", required: false, schema: new OA\Schema(type: "string")), @@ -484,7 +484,7 @@ public function getAttendeeNote($summit_id, $attendee_id, $note_id) SummitScopes::WriteSummitData, SummitScopes::WriteAttendeeNotesData, ]]], - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -494,7 +494,7 @@ public function getAttendeeNote($summit_id, $attendee_id, $note_id) ] ], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), ], requestBody: new OA\RequestBody( @@ -541,7 +541,7 @@ public function addAttendeeNote($summit_id, $attendee_id) SummitScopes::WriteSummitData, SummitScopes::WriteAttendeeNotesData, ]]], - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -551,7 +551,7 @@ public function addAttendeeNote($summit_id, $attendee_id) ] ], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), new OA\Parameter(name: "note_id", description: "Note ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), ], @@ -600,7 +600,7 @@ public function updateAttendeeNote($summit_id, $attendee_id, $note_id) SummitScopes::WriteSummitData, SummitScopes::WriteAttendeeNotesData, ]]], - tags: ["AttendeeNotes"], + tags: ["Attendee Notes"], x: [ 'required-groups' => [ IGroup::SuperAdmins, @@ -610,7 +610,7 @@ public function updateAttendeeNote($summit_id, $attendee_id, $note_id) ] ], parameters: [ - new OA\Parameter(name: "id", description: "Summit ID or slug", in: "path", required: true, schema: new OA\Schema(type: "string")), + new OA\Parameter(name: "id", description: "Summit ID", in: "path", required: true, schema: new OA\Schema(type: "string")), new OA\Parameter(name: "attendee_id", description: "Attendee ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), new OA\Parameter(name: "note_id", description: "Note ID", in: "path", required: true, schema: new OA\Schema(type: "integer")), ], @@ -632,4 +632,4 @@ public function deleteAttendeeNote($summit_id, $attendee_id, $note_id) return $this->deleted(); }); } -} \ No newline at end of file +} diff --git a/app/Swagger/security/SummitAttendeeNotesAuthScheme.php b/app/Swagger/Security/SummitAttendeeNotesSecuritySchema.php similarity index 91% rename from app/Swagger/security/SummitAttendeeNotesAuthScheme.php rename to app/Swagger/Security/SummitAttendeeNotesSecuritySchema.php index 9bacb4e46..7b29de436 100644 --- a/app/Swagger/security/SummitAttendeeNotesAuthScheme.php +++ b/app/Swagger/Security/SummitAttendeeNotesSecuritySchema.php @@ -1,6 +1,6 @@ Date: Mon, 8 Dec 2025 15:50:21 +0000 Subject: [PATCH 3/3] chore: Rewrite schema structure --- .../Models/SummitAttendeeNoteSchema.php | 22 +++++++++++++++++ app/Swagger/SummitAttendeeNoteSchemas.php | 24 ------------------- 2 files changed, 22 insertions(+), 24 deletions(-) create mode 100644 app/Swagger/Models/SummitAttendeeNoteSchema.php diff --git a/app/Swagger/Models/SummitAttendeeNoteSchema.php b/app/Swagger/Models/SummitAttendeeNoteSchema.php new file mode 100644 index 000000000..91d224e63 --- /dev/null +++ b/app/Swagger/Models/SummitAttendeeNoteSchema.php @@ -0,0 +1,22 @@ +