# OpenAPI additions for Cancel Event feature # To be merged into backend/src/main/resources/openapi/api.yaml # PATCH method added to existing /events/{eventToken} path # Under paths./events/{eventToken}: # --- Add PATCH method to existing path --- # /events/{eventToken}: # patch: # operationId: patchEvent # summary: Update an event (currently: cancel) # description: | # Partial update of an event resource. Currently the only supported operation # is cancellation (setting cancelled to true). Requires the organizer token. # Cancellation is irreversible. # tags: [Events] # parameters: # - $ref: '#/components/parameters/EventToken' # requestBody: # required: true # content: # application/json: # schema: # $ref: '#/components/schemas/PatchEventRequest' # responses: # '204': # description: Event updated successfully # '403': # description: Invalid organizer token # content: # application/json: # schema: # $ref: '#/components/schemas/ErrorResponse' # '404': # description: Event not found # content: # application/json: # schema: # $ref: '#/components/schemas/ErrorResponse' # '409': # description: Event is already cancelled # content: # application/json: # schema: # $ref: '#/components/schemas/ErrorResponse' # --- New schemas --- # PatchEventRequest: # type: object # required: [organizerToken, cancelled] # properties: # organizerToken: # type: string # format: uuid # description: The organizer token proving ownership of the event # example: "550e8400-e29b-41d4-a716-446655440001" # cancelled: # type: boolean # description: Set to true to cancel the event (irreversible) # example: true # cancellationReason: # type: string # maxLength: 2000 # description: Optional cancellation reason # example: "Unfortunately the venue is no longer available." # --- Extended schema: GetEventResponse --- # Add to existing GetEventResponse properties: # cancelled: # type: boolean # description: Whether the event has been cancelled # example: false # cancellationReason: # type: string # nullable: true # description: Reason for cancellation, if provided # example: null