/* Options: Date: 2024-05-10 06:47:39 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://test.servicestack.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateJwt.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/jwt") public class CreateJwt : AuthUserSession, IReturn { public typealias Return = CreateJwtResponse public var jwtExpiry:Date? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case jwtExpiry } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) jwtExpiry = try container.decodeIfPresent(Date.self, forKey: .jwtExpiry) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if jwtExpiry != nil { try container.encode(jwtExpiry, forKey: .jwtExpiry) } } } public class CreateJwtResponse : Codable { public var token:String public var responseStatus:ResponseStatus required public init(){} } public protocol IAuthTokens { var provider:String { get set } var userId:String { get set } var accessToken:String { get set } var accessTokenSecret:String { get set } var refreshToken:String { get set } var refreshTokenExpiry:Date? { get set } var requestToken:String { get set } var requestTokenSecret:String { get set } var items:[String:String] { get set } } // @DataContract public class AuthUserSession : Codable { // @DataMember(Order=1) public var referrerUrl:String // @DataMember(Order=2) public var id:String // @DataMember(Order=3) public var userAuthId:String // @DataMember(Order=4) public var userAuthName:String // @DataMember(Order=5) public var userName:String // @DataMember(Order=6) public var twitterUserId:String // @DataMember(Order=7) public var twitterScreenName:String // @DataMember(Order=8) public var facebookUserId:String // @DataMember(Order=9) public var facebookUserName:String // @DataMember(Order=10) public var firstName:String // @DataMember(Order=11) public var lastName:String // @DataMember(Order=12) public var displayName:String // @DataMember(Order=13) public var company:String // @DataMember(Order=14) public var email:String // @DataMember(Order=15) public var primaryEmail:String // @DataMember(Order=16) public var phoneNumber:String // @DataMember(Order=17) public var birthDate:Date? // @DataMember(Order=18) public var birthDateRaw:String // @DataMember(Order=19) public var address:String // @DataMember(Order=20) public var address2:String // @DataMember(Order=21) public var city:String // @DataMember(Order=22) public var state:String // @DataMember(Order=23) public var country:String // @DataMember(Order=24) public var culture:String // @DataMember(Order=25) public var fullName:String // @DataMember(Order=26) public var gender:String // @DataMember(Order=27) public var language:String // @DataMember(Order=28) public var mailAddress:String // @DataMember(Order=29) public var nickname:String // @DataMember(Order=30) public var postalCode:String // @DataMember(Order=31) public var timeZone:String // @DataMember(Order=32) public var requestTokenSecret:String // @DataMember(Order=33) public var createdAt:Date // @DataMember(Order=34) public var lastModified:Date // @DataMember(Order=35) public var roles:[String] = [] // @DataMember(Order=36) public var permissions:[String] = [] // @DataMember(Order=37) public var isAuthenticated:Bool // @DataMember(Order=38) public var fromToken:Bool // @DataMember(Order=39) public var profileUrl:String // @DataMember(Order=40) public var sequence:String // @DataMember(Order=41) public var tag:Int // @DataMember(Order=42) public var authProvider:String //providerOAuthAccess:[IAuthTokens] ignored. Swift doesn't support interface properties // @DataMember(Order=44) public var meta:[String:String] = [:] // @DataMember(Order=45) public var audiences:[String] = [] // @DataMember(Order=46) public var scopes:[String] = [] // @DataMember(Order=47) public var dns:String // @DataMember(Order=48) public var rsa:String // @DataMember(Order=49) public var sid:String // @DataMember(Order=50) public var hash:String // @DataMember(Order=51) public var homePhone:String // @DataMember(Order=52) public var mobilePhone:String // @DataMember(Order=53) public var webpage:String // @DataMember(Order=54) public var emailConfirmed:Bool? // @DataMember(Order=55) public var phoneNumberConfirmed:Bool? // @DataMember(Order=56) public var twoFactorEnabled:Bool? // @DataMember(Order=57) public var securityStamp:String // @DataMember(Order=58) public var type:String // @DataMember(Order=59) public var recoveryToken:String // @DataMember(Order=60) public var refId:Int? // @DataMember(Order=61) public var refIdStr:String required public init(){} }