actions/update-event/update-event.mjs
import waiverfile from "../../waiverfile.app.mjs"; export default { key: "waiverfile-update-event", name: "Update Event", description: "Updates the details of an existing event in WaiverFile. [See the documentation](https://api.waiverfile.com/swagger/ui/index#!/WaiverEvent/WaiverEvent_UpdateEvent)", version: "0.0.2", annotations: { destructiveHint: true, openWorldHint: true, readOnlyHint: false, }, type: "action", props: { waiverfile, eventId: { propDefinition: [ waiverfile, "eventId", ], }, name: { type: "string", label: "Event Name", description: "The new name for the event", optional: true, }, dateStart: { type: "string", label: "Start Date", description: "The new start date for the event in ISO-8601 format. For example, `2024-01-19T01:00:00Z`", optional: true, }, dateEnd: { type: "string", label: "End Date", description: "The new end date for the event in ISO-8601 format. For example, `2024-01-19T01:00:00Z", optional: true, }, isAllDay: { type: "boolean", label: "Is All Day", description: "Set to true for an all-day event", optional: true, }, categoryId: { propDefinition: [ waiverfile, "categoryId", ], optional: true, }, waiverFormIds: { propDefinition: [ waiverfile, "waiverFormIds", ], optional: true, }, }, methods: { async getEventById(eventId, $) { const response = await this.waiverfile.listUpcomingEvents({ $, params: { startDateUTC: new Date(), endDateUTC: new Date(new Date().setFullYear(new Date().getFullYear() + 1)), }, }); const events = JSON.parse(response); return events.find(({ WaiverEventID: id }) => id === eventId); }, }, async run({ $ }) { const event = await this.getEventById(this.eventId, $); console.log(event); const response = await this.waiverfile.updateEvent({ $, params: { eventID: this.eventId, eventName: this.name || event.Name, dateEnd: this.dateEnd || event.DateEnd, dateStart: this.dateStart || event.DateStart, isAllDay: this.isAllDay || event.IsAllDay, eventCategoryID: this.categoryId || event.CategoryID, waiverFormIds: this.waiverFormIds || event.WaiverEventFormIDs, }, }); $.export("$summary", `Successfully updated event with ID ${this.eventId}`); return response; }, };