SiteEventsController

struct SiteEventsController : SiteControllerUtils

Events

  • eventsPageHandler(_:) Asynchronous

    GET /events

    By default, shows a day’s worth events. Always attempts to show events from a day on the actual cruise. Uses Settings.shared.cruiseStartDate for cruise dates; the ingested schedule should have events for that day and the next 7 days.

    Use the ‘day’ or ‘cruiseday’ query parameter to request which day to show. If no parameter given, uses the current day of week.

    When the search parameter is used, returns events for the entire cruise, that match the search value.

    Query Parameters:

    • day=STRING One of: “sun” … “sat”. Can also use “1sat” for first Saturday (embarkation day), or “2sat” for the next Saturday.
    • cruiseday=INT Generally 1…8, where 1 is embarkation day.
    • search=STRING Filter only events that match the given string.

    Declaration

    Swift

    func eventsPageHandler(_ req: Request) async throws -> View
  • Declaration

    Swift

    func eventGetPageHandler(_ req: Request) async throws -> View
  • Declaration

    Swift

    func eventsDownloadICSHandler(_ req: Request) async throws -> Response
  • Declaration

    Swift

    func eventsDownloadFollowingHandler(_ req: Request) async throws -> Response
  • Declaration

    Swift

    func eventsAddRemoveFavoriteHandler(_ req: Request) async throws -> HTTPStatus

Utility fns

  • Creates a iCalendar data file describing the given event. iCalendar is also known as VCALENDAR or an .ics file. It’s the thing most calendar event importers have standardized on for data interchange.

    Declaration

    Swift

    func buildEventICS(events: [EventData], username: String = "") -> String
  • Declaration

    Swift

    func icsEscapeString(_ str: String) -> String