Other Structures
The following structures are available globally.
- 
                  
                  DeclarationSwift struct GenerateScheduleCommand : AsyncCommand
- 
                  
                  Random number generator that can be initialized with a seed value. Copied from https://github.com/mattgallagher/CwlUtils/blob/master/Sources/CwlUtils/CwlRandom.swift The idea here is that this RNG is seeded with a user’s userID, and will always produce the same sequence of numbers when building a user’s identicon.. See moreDeclarationSwift public struct Xoshiro : RandomNumberGenerator
- 
                  
                  Methods for accessing the list of boardgames available in the onboard Games Library. See moreDeclarationSwift struct MicroKaraokeController : APIRouteCollection
- 
                  
                  DeclarationSwift struct SongInfoJSON : Decodable
- 
                  
                  For admins to upload new daily themes, or edit existing ones. See moreDeclarationSwift public struct DailyThemeUploadData : Content
- 
                  
                  Used to validate changes to the Eventdatabase. This public struct shows the differrences between the current schedule and the (already uploaded but not processed) updated schedule. Event identity is based on theuidfield–two events with the sameuidare the same event, and if they show different times, we conclude the event’s time changed. Two events with differentuids are different events, even if all other fields are exactly the same.Events that are added or deleted will only appear in deleted or created event arrays. Modified events could appear in any or all of the 3 modification arrays. Deleted events take their contents from the database. All other arrays take content from the update. Required by: POST /api/v3/admin/schedule/verifySee See moreEventController.eventsUpdateHandler(_:data:).DeclarationSwift public struct EventUpdateDifferenceData : Content
- 
                  
                  DeclarationSwift public struct EventUpdateLogData : Content
- 
                  
                  Returns the registration code associated with a user. Not all users have registration codes; e.g. asking for the reg code for ‘admin’ will return an error. See moreDeclarationSwift public struct RegistrationCodeUserData : Content
- 
                  
                  Returns general info about registration codes. Each passenger gets sent an email with a unique registration code; the reg code allows them to create verified accounts. This struct lets the admins quickly view some basic stats on account usage. See moreDeclarationSwift public struct RegistrationCodeStatsData : Content
- 
                  
                  Used to enable/disable features. A featurePair with name: “kraken” and feature: “schedule” indicates the Schedule feature of the Kraken app. When the server indicates this app:feature pair is disabled, the client app should not show the feature to users, and should avoid calling API calls related to that feature. Either the app or feature field could be ‘all’. Used in: See moreSettingsAdminData,SettingsUpdateDataDeclarationSwift public struct SettingsAppFeaturePair : Content
- 
                  
                  Used to update the Settingsvalues. Doesn’t update everything–some values aren’t meant to be updated live. The updated values are saved so that they’ll persist through app launches. Any optional values set to nil are not used to update Settings values.Required by: POST /api/v3/events/updateSee See moreAdminController.settingsUpdateHandler().DeclarationSwift public struct SettingsUpdateData : Content
- 
                  
                  Used to return information about the time zone changes scheduled to occur during the cruise. Returned by: See moreGET /api/v3/admin/timezonechangesDeclarationSwift public struct TimeZoneChangeData : Content
- 
                  
                  Parameters for the game recommender engine. Pass these values in, get back a BoardgameResponseDatawith a list of games filtered to match the criteria, and sorted based on how well they match the criteria. The sort takes into account each games’ overall rating from BGG, the recommended number of players (not just min and max allowed players), the average playtime, and the complexity score of the game.Sent to these methods as the JSON request body: - GET /api/v3/boardgames/recommend
 DeclarationSwift public struct BoardgameRecommendationData : Content
- 
                  
                  DeclarationSwift public struct DailyThemeData : Content
- 
                  
                  A feature that has been turned off by the server. If the appNameisall, the indicatedfeatureNameis disabled at the API level for this feature and all relevant endpoints will return errors. For any other value of appName, the API still works, but the indicated client apps should not allow the feature to be accessed. The goal is to be able to disable code that is impacting server stability or performance without shutting down the server entirely or disallowing specific clients entirely.Used in See moreUserNotificationData.DeclarationSwift public struct DisabledFeature : Content
- 
                  
                  All errors returned in HTTP responses use this structure. Some server errors (such as 404s) may not have any payload in the response body, but for any HTTP error response that has a payload, the payload will have this strcture. erroris always true,reasonconcatenates all errors into a single string, andfieldErrorsbreaks errors up by field name of the request’s body content, if available. Only content validation errors actaully usefieldErrors. Field-specific validation errors are keyed by the path to the field that caused the error. Validation errors that aren’t specific to an input field (e.g. an error indicating that one of two fields may be empty, but not both) are all concatenated and placed into ageneralkey infieldErrors. This means that all field errors are both inerror(concatenated into a single string), and also infieldErrors(split into fields).See moreNote If the request body has validation errors, the error response should list all validation errors at once. However, other errors that may prevent a successful action will not be included. For instance, a user might try creating a Forum with empty fields. The error response will indicate that both Title and Text fields need values. After fixing those issues, the user could still get an error becuase they are quarantined and not authorized to create posts.DeclarationSwift public struct ErrorResponse : Codable, Error
- 
                  
                  Used to return data on a group of See moreFriendlyFezobjects.DeclarationSwift public struct FezListData : Content
- 
                  
                  Used to return a (partial) list of forums along with the number of forums in the found set. Similar to CategoryData, but the forums need not be from the same category. Instead, this returns forums that match a common attribute acoss all categores. Returned by: - GET /api/v3/forum/favorites
- GET /api/v3/forum/owner
 See See moreForumController.categoriesHandler(_:)DeclarationSwift public struct ForumSearchData : Content
- 
                  
                  Wraps an array of KaraokeSongDatawith information for pagination.KaraokeSongDatareturns data about a single song.Returned by: See moreGET /api/v3/karaokeSeeKaraokeController.getKaraokeSongs().DeclarationSwift public struct KaraokeSongResponseData : Content
- 
                  
                  Returns information about a song in the Karaoke Song Library. Returned by: See moreGET /api/v3/karaoke/:song_idIncorporated into:KaraokeSongResponseDataDeclarationSwift public struct KaraokeSongData : Content
- 
                  
                  Returns information about songs that have been performed in the Karaoke Lounge onboard. Returned by: See moreGET /api/v3/karaoke/performanceIncorporated into:KaraokeSongData, which itself is incorporated into `KaraokeSongResponseDataDeclarationSwift public struct KaraokePerformedSongsData : Content
- 
                  
                  Used to obtain the user’s current list of alert or mute keywords. Returned by: - GET /api/v3/user/alertwords
- POST /api/v3/user/alertwords/add/STRING
- POST /api/v3/user/alertwords/remove/STRING
- GET /api/v3/user/mutewords
- POST /api/v3/user/mutewords/add/STRING
- POST /api/v3/user/mutewords/remove/STRING
 See See moreUserController.alertwordsHandler(_:),UserController.alertwordsAddHandler(_:),UserController.alertwordsRemoveHandler(_:).DeclarationSwift public struct KeywordData : Content
- 
                  
                  Used to return a list of completed Micro Karaoke songs, that is, finished videos the user can watch. Returned by: - GET /api/v3/karaoke/mk/songlist
 See See moreUsersController.headerHandler(_:),ClientController.userHeadersHandler(_:).DeclarationSwift public struct MicroKaraokeCompletedSong : Content
- 
                  
                  Used to upload a Micro Karaoke video. The offerID comes from the server when it offers a song clip. Used by: - POST /api/v3/karaoke/mk/recording
 DeclarationSwift public struct MicroKaraokeRecordingData : Content
- 
                  
                  DeclarationSwift public struct MicroKaraokeSnippetModeration : Content
- 
                  
                  When a user starts the Micro Karaoke flow to sing and record part of a song, the server reserves a song slot for that user and returns into about their reservation, including the lyrics they should sing, what song it’s part of, and URLs for the vocal and no-vocal song clipe. Returned by: - POST /api/v3/karaoke/mk/offer
 DeclarationSwift public struct MicroKaraokeOfferPacket : Content
- 
                  
                  DeclarationSwift public struct MicroKaraokeSongManifest : Content
- 
                  
                  Composes into other structs to add pagination. Generally this will be added to a top-level struct along with an array of some result type, like this: struct SomeCollectionData: Content { var paginator: Paginator var collection: [CollectionElementType] }The Paginator lets you page through results, showing the total number of pages and the current page. The outer-level struct should document the sort ordering for the returned collection; the first element in the sorted collection is returned in the first result element when start = 0. In many cases the size of the returned array will be smaller than limit, and not only at the end of the results. In several cases the results may be filtered after the database query returns. The next ‘page’ of results should be calculated with See morestart + limit, not withstart + collection.count.DeclarationSwift public struct Paginator : Content
- 
                  
                  A bool, wrapped in a struct. Used for the results of user capability queries. Required by: - POST /api/v3/karaoke/userIsManager
 See See moreUserController.createHandler(_:data:),UserController.addHandler(_:data:).DeclarationSwift public struct UserAuthorizedToCreateKaraokeLogs : Content
- 
                  
                  Returns status about a single Alertword, for either Twarrts of ForumPost hits on that word. Used inside UserNotificationData. See moreDeclarationSwift public struct UserNotificationAlertwordData : Content
- 
                  
                  Provides updates about server global state and the logged in user’s notifications. userNotificationHandler()is intended to be called frequently by clients (I mean, don’t call it once a second).Returned by AlertController.userNotificationHandler() See moreDeclarationSwift public struct UserNotificationData : Content
- 
                  
                  Used to edit the current user’s profile contents. For profile data on users, see ProfilePublicData.Required by: - POST /api/v3/user/profile
 Returned by: - GET /api/v3/user/profile
- POST /api/v3/user/profile
 See See moreUserController.profileHandler(_:),UserController.profileUpdateHandler(_:data:).Declaration
- 
                  
                  Prometheus Alertmanager webhook alert object. Applied from https://prometheus.io/docs/alerting/latest/configuration/#webhook_config See moreDeclarationSwift public struct AlertmanagerAlert : Content
- 
                  
                  Prometheus Alertmanager webhook payload. Applied from https://prometheus.io/docs/alerting/latest/configuration/#webhook_config See moreDeclarationSwift public struct AlertmanagerWebhookPayload : Content
- 
                  
                  Healthcheck URL response payload. This smells roughly the same as an error fields-wise without inheriting from the error. See moreDeclarationSwift public struct HealthResponse : Content
- 
                  
                  Used to return FriendlyFezEditdata for moderators. The only primary data an edit stores is the title, info, and location text fields.Included in: Returned by: - GET /api/v3/mod/fez/ID
 DeclarationSwift public struct FezEditLogData : Content
- 
                  
                  Used to return data a moderator needs to moderate a fez. Returned by: - GET /api/v3/mod/fez/:fez_id
 Note that FezPosts can’t be edited and don’t have an edit log. See See moreModerationController.fezModerationHandler(_:)DeclarationSwift public struct FezModerationData : Content
- 
                  
                  Used to return data a moderator needs to moderate a fez post. Returned by: - GET /api/v3/mod/fezpost/:post_id
 See See moreModerationController.fezPostModerationHandler(_:)DeclarationSwift public struct FezPostModerationData : Content
- 
                  
                  Used to return data a moderator needs to moderate a forum. Returned by: - GET /api/v3/mod/forum/id
 See See moreModerationController.forumModerationHandler(_:)DeclarationSwift public struct ForumModerationData : Content
- 
                  
                  Used to return data a moderator needs to moderate a twarrt. Returned by: - GET /api/v3/mod/forumPost/id
 See See moreModerationController.forumPostModerationHandler(_:)DeclarationSwift public struct ForumPostModerationData : Content
- 
                  
                  Returns data about an instance of a moderator using their mod powers to edit/delete a user’s content, edit a user’s profile fields, or change a user’s privledges. See moreDeclarationSwift public struct ModeratorActionLogData : Content
- 
                  
                  Used to return data on a collection of moderator action events. See moreDeclarationSwift public struct ModeratorActionLogResponseData : Content
- 
                  
                  Used to return a TwarrtEditorForumPost‘s data for moderators. The two models use the same data structure, as all the fields happen to be the same.Included in: Returned by: - GET /api/v3/mod/twarrt/id
 DeclarationSwift public struct PostEditLogData : Content
- 
                  
                  Used to return data moderators need to view previous edits a user made to their profile. This structure will have either the See moreprofileDataorprofileImagefield populated. An array of these stucts is placed insideProfileModerationData.DeclarationSwift public struct ProfileEditLogData : Content
- 
                  
                  Used to return data moderators need to evaluate a user’s profile. Shows the user’s current profile values, past edits, reports made against the profile, and the user’s profile moderationStatus. See moreDeclarationSwift public struct ProfileModerationData : Content
- 
                  
                  Used to return data a moderator needs to moderate a twarrt. Returned by: - GET /api/v3/mod/twarrt/id
 See See moreModerationController.twarrtModerationHandler(_:)DeclarationSwift public struct TwarrtModerationData : Content
- 
                  
                  Used to return data a moderator needs to moderate a user. Returned by: - GET /api/v3/mod/user/id
 See See moreModerationController.userModerationHandler(_:)DeclarationSwift public struct UserModerationData : Content
- 
                  
                  FezPostData, modified to be easier for sockets. Fez and Seamail socket clients will receive this message as a JSON string when a user posts in the fez/seamail. Posts made by a user will be reflected back to them via this socket. If a user is logged on from 2 clients and both have open sockets, both clients will see the socket message when the user posts a new message from one of the clients. Each struct contains the UserHeader of the poster instead of the author’s UUID; this way clients (okay, the javascript web client) can format the post without additional requests. Note: Fezzes have other state changes that don’t currently have websocket notifications. Your socket message handler should gracefully handle the possibility that you receive a message that doesn’t fit any of the currently documented message structs. See: - WS /api/v3/fez/:fezID/socket
 DeclarationSwift struct SocketFezPostData : Content
- 
                  
                  Informs Fez WebSocket clients of a change in Fez membership. If joined is FALSE, the user has left the fez. Although seamail sockets use the same endpoint (seamail threads are Fezzes internally), this mesage will never be sent to Seamail threads as membership is fixed at creation time. Fez socket message handlers will receive this message as a JSON string when a user joins/leaves the fez, or is added/removed by the fez owner. See: - WS /api/v3/fez/:fezID/socket
 DeclarationSwift struct SocketFezMemberChangeData : Content
- 
                  
                  Informs Notification WebSocket clients of a new notification. Each notification is delivered as a JSON string, containing a type of announcement and a string appropriate for displaying to the user. The string will be of the form, “User @authorName wrote a forum post that mentioned you.” See moreDeclarationSwift struct SocketNotificationData : Content
- 
                  
                  Notifies the recipient of a phone call the IP addr of the caller, so the recipient can open a direct-connect WebSocket to the caller (who must have started a WebSocket Server to receive the incoming connection). See moreDeclarationSwift struct PhoneSocketServerAddress : Codable
- 
                  
                  Sent at the start of a phone call. Used as a handshake. See moreDeclarationSwift struct PhoneSocketStartData : Codable
- 
                  
                  DeclarationSwift public struct TwarrtQueryOptions : Content
- 
                  
                  DeclarationSwift struct DisabledFeaturesGroup : Codable, RESPValueConvertible
- 
                  
                  DeclarationSwift public struct UserCacheData : Authenticatable, SessionAuthenticatable
- 
                  
                  DeclarationSwift struct ValidationFailure
- 
                  
                  DeclarationSwift struct ValidationError : Error
- 
                  
                  DeclarationSwift struct ValidatingKeyedContainer<Key> : KeyedDecodingContainerProtocol where Key : CodingKey
- 
                  
                  DeclarationSwift public struct UserSocket
- 
                  
                  Defines a formatter to be used on BMP import & export conversions See moreDeclarationSwift private struct BMPFormatter : LibGdParametrizableFormatter
- 
                  
                  Defines a formatter to be used on GIF import & export conversions See moreDeclarationSwift private struct GIFFormatter : LibGdFormatter
- 
                  
                  Defines a formatter to be used on JPEG import & export conversions See moreDeclarationSwift private struct JPGFormatter : LibGdParametrizableFormatter
- 
                  
                  Defines a formatter to be used on PNG import & export conversions See moreDeclarationSwift private struct PNGFormatter : LibGdFormatter
- 
                  
                  Defines a formatter to be used on TIFF import & export conversions See moreDeclarationSwift private struct TIFFFormatter : LibGdFormatter
- 
                  
                  Defines a formatter to be used on TGA import & export conversions See moreDeclarationSwift private struct TGAFormatter : LibGdImportableFormatter
- 
                  
                  Defines a formatter to be used on WBMP import & export conversions See moreDeclarationSwift private struct WBMPFormatter : LibGdParametrizableFormatter
- 
                  
                  Defines a formatter to be used on WEBP import & export conversions See moreDeclarationSwift private struct WEBPFormatter : LibGdFormatter
- 
                  
                  A structure that represents a geometric angle. See moreDeclarationSwift public struct Angle
- 
                  
                  DeclarationSwift public struct Color
- 
                  
                  A structure that contains a point in a two-dimensional coordinate system. See moreDeclarationSwift public struct Pointextension Point: Equatable
- 
                  
                  A structure that represents a rectangle. See moreDeclarationSwift public struct Rectangleextension Rectangle: Equatable
- 
                  
                  A structure that represents a two-dimensional size. See moreDeclarationSwift public struct Sizeextension Size: Comparable
- 
                  
                  AsyncJobs require a payload, and apparently we can’t just shove Codable at it. So this struct exists in case the job ever decides to need runtime parameters. DeclarationSwift public struct EmptyJobPayload : Codable
- 
                  
                  Job to update the Sched schedule on a “cron” (and by “cron” I mean Vapor Queue). See moreDeclarationSwift public struct UpdateScheduleJob : AsyncScheduledJob
- 
                  
                  Job to update the Sched schedule on demand. See moreDeclarationSwift public struct UpdateJob : AsyncJob
- 
                  
                  Job to push socket notifications of an upcoming event on a “cron” (and by “cron” I mean Vapor Queue). See moreDeclarationSwift public struct UserEventNotificationJob : AsyncScheduledJob
- 
                  
                  DeclarationSwift struct CreateMicroKaraokeUser : AsyncMigration
- 
                  
                  DeclarationSwift struct CreateCategoriesV2 : AsyncMigration
- 
                  
                  DeclarationSwift struct RenameWhereAndWhen : AsyncMigration
- 
                  
                  DeclarationSwift struct AddFoodDrinkCategory : AsyncMigration
- 
                  
                  Structure of the JSON in the JoCoGamesCatalog file. Similar to the structure of the Model object (Boardgame) and the Data Transfer Sruct (BoardgameData), but this struct is specifically for migration. See moreDeclarationSwift struct JsonGamesListGame : Codable
- 
                  
                  A See moreMigrationthat imports timezone change data located in theseeds/subdirectory of the project. Thetime-zone-changes.txtfile should contain tab-delimited data, 3 fields on each line:20220305T070000Z -5 ESTThis line says that on March 5, 2022 at 2:00 AM EST (7 AM UTC), the boat will be in the EST timezone, with a timezone offset of -5 hours. Because we usually use the previous year’s schedule data for testing until we get the next year’s schedule, it’s intended that thetime-zone-changes.txtfile will have more than one sailing’s worth of timezone changes in it.DeclarationSwift struct ImportTimeZoneChanges : AsyncMigration
- 
                  
                  DeclarationSwift struct CreatePerformanceIndexes : AsyncMigration
- 
                  
                  DeclarationSwift struct CreateSearchIndexes : AsyncMigration
- 
                  
                  DeclarationSwift struct CreateSeamailSearchIndexes : AsyncMigration
- 
                  
                  This migration used to include populating the last_post_id for all existing rows. Except that acting on Forum before all future migrations have executed (as listed in configure.swift) fails because all of the other fields don’t exist yet. So that functionality has been moved to PopulateForumLastPostIDMigration below and that migration runs later on after all schema modifications have been populated. See moreDeclarationSwift struct UpdateForumLastPostIDMigration : AsyncMigration
- 
                  
                  DeclarationSwift struct UpdateForumPinnedMigration : AsyncMigration
- 
                  
                  DeclarationSwift struct PopulateForumLastPostIDMigration : AsyncMigration
- 
                  
                  DeclarationSwift struct UpdateForumPostPinnedMigration : AsyncMigration
- 
                  
                  DeclarationSwift struct FixForumPostPinnedMigration : AsyncMigration
- 
                  
                  DeclarationSwift struct CreateMKSnippetSchema : AsyncMigration
- 
                  
                  DeclarationSwift struct CreateMKSongSchema : AsyncMigration
- 
                  
                  DeclarationSwift struct CreateScheduleLogSchema : AsyncMigration
- 
                  
                  DeclarationSwift struct TimeZoneChangeSet : Codable
- 
                  
                  DeclarationSwift struct UpdateUserDinnerTeamMigration : AsyncMigration
- 
                  
                  DeclarationSwift struct UpdateFezParticipantSchema : AsyncMigration
- 
                  
                  DeclarationSwift struct GameListContext : Encodable
- 
                  
                  DeclarationSwift struct GameExpansionsContext : Encodable
- 
                  
                  DeclarationSwift struct TrunkContext : Encodable
- 
                  
                  Context required for a paginator control. A page may include “paginator.leaf” multiple times to place multiples of the same paginator, but the context is set up to only allow one paginator per page, at a path of “/paginator” from the context root. I could enforce this with a protocol, but … meh. See moreDeclarationSwift struct PaginatorContext : Codable
- 
                  
                  DeclarationSwift struct MessagePostContext : Encodable
- 
                  
                  DeclarationSwift struct MessagePostFormContent : Codable
- 
                  
                  DeclarationSwift struct ReportPageContext : Encodable
- 
                  
                  DeclarationSwift struct EventPageContext : Encodable
- 
                  
                  DeclarationSwift struct ForumsSortOrder : Encodable
- 
                  
                  DeclarationSwift struct ForumPageContext : Encodable
- 
                  
                  DeclarationSwift struct ForumsSearchPageContext : Encodable
- 
                  
                  DeclarationSwift struct ForumPostSearchQueryOptions : Content
- 
                  
                  DeclarationSwift struct PostSearchPageContext : Encodable
- 
                  
                  DeclarationSwift struct CreateFezPostFormContent : Codable
- 
                  
                  DeclarationSwift struct FezCreateUpdatePageContext : Encodable
- 
                  
                  DeclarationSwift struct ReportContentGroup : Codable
- 
                  
                  DeclarationSwift struct ReportsContext : Encodable
- 
                  
                  DeclarationSwift struct TweetPageContext : Encodable
- 
                  
                  DeclarationSwift struct TweetEditPageContext : Encodable
- 
                  
                  DeclarationSwift struct PublicProfileContext : Encodable
- 
                  
                  DeclarationSwift struct ProfileFormContent : Content
- 
                  
                  DeclarationSwift struct AddWordFormStruct : Decodable
- 
                  
                  DeclarationSwift struct UserProfileEditContext : Encodable
- 
                  
                  Runs the element sanitizer on the given string, and then converts Jocomoji (specific string tags with the form :tag:) into inline images. Generally, use this tag for user text that isn’t posts. Usage: #addJocomoji(String) -> String See moreDeclarationSwift struct AddJocomojiTag : UnsafeUnescapedLeafTag
- 
                  
                  DeclarationSwift struct MarkdownTextTag : UnsafeUnescapedLeafTag
- 
                  
                  Runs the element sanitizer on the given string, converts Jocomoji (specific string tags with the form :tag:) into inline images, and then converts substrings of the forum “@username” and “#hashtag” into links. Usage: #formatTwarrtText(String) -> String Usage: #formatPostText(String) -> String Usage: #formatFezText(String) -> String Usage: #formatSeamailText(String) -> String See moreDeclarationSwift struct FormatPostTextTag : UnsafeUnescapedLeafTag
- 
                  
                  Turns a Date string into a relative date string. Argument is a ISO8601 formatted Date, or what JSON encoding does to Date values. Output is a string giving a relative time in the past (from now) indicating the approximate time of the Date. Output is constrained to a single element. e.g: “3 hours ago”, “1 day ago”, “5 minutes ago” Usage in Leaf templates: #relativeTime(dateValue) -> String See moreDeclarationSwift struct RelativeTimeTag : LeafTag
- 
                  
                  Returns a string descibing when an event is taking place. Shows both the start and end time. Events come to us from the Sched dump which THO populates as “consistent-boat-EST-based-UTC”. Meaning that the raw values from Sched are in UTC and the events are scheduled for EST and not adjusted for any time-zone changes. This means that on any day where the boat (display) time zone changes the Sched is off by that offset. Since EST is given as the reference point for timezoneless time on the ship we call that “Port Time” and always render events based on that perspective so that it will be consistent. For 2022 a munger was developed so that the days of odd time zones get their UTC times adjusted by the difference between Port Timezone and AST (which was our only transition). As such there is currently no functional difference between EvenTimeTag and FezTimeTag. It is being left in the code so that some day we can define programatic timezone transitions and not have to do munging of the input. Usage in Leaf templates:: #eventTime(startTime, endTime) -> String See moreDeclarationSwift struct EventTimeTag : LeafTag
- 
                  
                  Returns a string descibing when an LFG is taking place. Shows both the start and end time. Usage in Leaf templates:: #fezTime(startTime, endTime) -> String See moreDeclarationSwift struct FezTimeTag : LeafTag
- 
                  
                  Returns a string describing a time. Unlike EventTimeTag this is used for a single point in time rather than a range or duration. Usage in Leaf templates:: #staticTime(startTime) -> String See moreDeclarationSwift struct StaticTimeTag : LeafTag
- 
                  
                  Returns a string describing a time, expressed as a ISO8601 time string in the GMT timezone. That is: 20221103T002152Z.Usage in Leaf templates:: #UTCTime(time) -> String See moreDeclarationSwift struct UTCTimeTag : LeafTag
- 
                  
                  Return an ISO8601-ish time string for use with the HTML datetime-local form input type. It cannot take an ISO8601 since that requires a timezone to be included (suffix of [+-]H:MM) and the input chokes on that. So here we translate the following: “2022-02-13 02:00:00 +0000” (Date) -> “2022-02-12T18:00:00” (String) See moreDeclarationSwift struct LocalTimeTag : LeafTag
- 
                  
                  Turns a Date into a indexed day of the cruise, with embarkation day being day 0. Used to get the day on which an event happens. This code counts “days’ as starting/ending at 3AM instead of midnight, as there are often after-midnight events but rarely 3AM events. Usage: #cruiseDayIndex(date) returns 0…8 See moreDeclarationSwift struct CruiseDayIndexTag : LeafTag
- 
                  
                  Inserts an tag for the given user’s avatar image. Presents a default image if the user doesn’t have an image. Note: If we implement identicons at the API level, users will always have images, and the ‘generic user’ image here is just a fallback. First parameter is the UserHeader, second optional parameter is the size of the to produce. This tag will select the best size image to reference based on the size of the image tag it is being placed in. Only produces square image views. Usage: #avatar(userHeader), #avatar(userHeader, 800) See moreDeclarationSwift struct AvatarTag : UnsafeUnescapedLeafTag
- 
                  
                  Usage: #userByline(userHeader) Or: #userByline(userHeader, “css-class”) to style the link Or: #userByline(userHeader, “short”) to display a shorter link (only the username, no displayname). Or: #userByline(userHeader, “nolink”) to display the username and displayname, without a link Or: #userByline(userHeader, “pronoun”) to display the username and displayname with pronouns. See moreDeclarationSwift struct UserBylineTag : UnsafeUnescapedLeafTag
- 
                  
                  Prints a float with 2 decimal precision e.g. “5.76”. Used by game ratings and game complexity. Usage: #gameRating(float) See moreDeclarationSwift struct GameRatingTag : LeafTag
- 
                  
                  https://github.com/jocosocial/swiftarr/issues/188 Renders a pretty label for a dinner team enum. I have to believe there’s a better way to access fancy properties like dinnerTeam.label from within the template, but I didn’t see an obvious pattern that worked. See moreDeclarationSwift struct DinnerTeamTag : LeafTag
- 
                  
                  Launching SwiftarrEnvironmentBesides the standard .development, .production, and .testing, there’s a few custom environment values that can be set, either on the command line with --env <ENVIRONMENT>or with theVAPOR_ENVenvironment variableEnvironment variables used by Swiftarr: - DATABASE_URL:
- DATABASE_HOSTNAME:
- DATABASE_PORT:
- DATABASE_DB:
- DATABASE_USER:
- DATABASE_PASSWORD: 
- REDIS_URL: 
- REDIS_HOSTNAME: 
- PORT: 
- hostname: 
- ADMIN_PASSWORD: 
- RECOVERY_KEY: 
- SWIFTARR_USER_IMAGES: Root directory for storing user-uploaded images. These images are referenced by filename in the db. 
- SWIFTARR_EXTERNAL_URL: Externally-visible URL to get to the server. The server uses this to create URLs pointing to itself. 
 DeclarationSwift struct SwiftarrConfigurator
 View on GitHub
            View on GitHub
           Other Structures  Reference
      Other Structures  Reference