| Requires any of the roles: | Admin, TeamAdmin, MobileApp | Requires the permission: | ReadData |
| POST | /ticketTransfer/createPending |
|---|
import Foundation
import ServiceStack
public class TicketTransferCreatePendingRequest : Codable
{
public var phoneVerificationNumber:String?
public var transferFromPhoneVerificationNumber:String?
public var transferToPhoneVerificationNumber:String?
public var eventTicket:Ticket?
public var eventTicketDetails:[TicketDetails] = []
public var toEmail:String?
public var toName:String?
public var idempotencyKey:String?
required public init(){}
}
public class Ticket : Codable
{
public var id:Int?
public var userId:Int?
public var userAuthId:Int?
public var eventId:Int?
public var timestampBought:Date?
public var timestampActivated:Date?
public var timeStampOrdered:Date?
public var deviceId:String?
public var phoneVerificationId:Int?
public var paymentMethodId:String?
public var paymentReference:String?
public var ticketStatus:String?
public var phoneVerificationNumber:String?
public var ticketTokenId:String?
public var paymentPhoneNumber:String?
public var ticketTransferredFrom:Int?
public var originalPhoneVerificationNumber:String?
public var teamPassId:Int?
public var paymentId:String?
public var isFree:Bool?
public var freeTicketFromId:String?
public var freeTicketFromTypeId:String?
public var freeTicketCardTypeId:String?
public var freeTicketCardId:Int?
public var totalPaidForTicket:Double?
public var seatsReservationId:String?
public var timeStampLastStatusChange:Date?
public var lastTicketStatus:String?
public var scanCode:String?
public var scanCodeType:String?
public var scanCodeNotActive:Bool?
public var multipleScanCodes:Bool?
public var currency:String?
public var ticketHasExpired:Bool?
public var discountCode:String?
public var totalDiscount:Double?
public var totalAmountBeforeDiscount:Double?
required public init(){}
}
public class TicketDetails : Codable
{
public var id:Int?
public var ticketId:Int?
public var eventSeriesTicketType:Int?
public var eventSeriesOwnerTicketType:Int?
public var ticketPrice:Double?
public var totalPrice:Double?
public var count:Int?
public var ticketColor:String?
public var showUsedTickets:Bool?
public var ticketName:String?
public var ticketDisplayString:String?
public var ticketDetailsTransferredFrom:Int?
public var teamPassId:Int?
public var isSpecialTicket:Bool?
public var specialTicketId:String?
public var justChangedBySQL:Bool?
public var sqlJustChangedTimeStamp:Date?
public var currency:String?
public var discountCode:String?
public var totalDiscount:Double?
public var totalAmountBeforeDiscount:Double?
public var ticketPriceBeforeDiscount:Double?
required public init(){}
}
public class TicketTransferCreatePendingResult : TicketTransferBaseResult
{
public var transferToken:String?
public var status:String?
public var toPhoneCanonical:String?
public var toPhoneDisplay:String?
public var toPhoneRaw:String?
public var expiresAt:Date?
public var eventId:Int?
public var eventName:String?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case transferToken
case status
case toPhoneCanonical
case toPhoneDisplay
case toPhoneRaw
case expiresAt
case eventId
case eventName
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
transferToken = try container.decodeIfPresent(String.self, forKey: .transferToken)
status = try container.decodeIfPresent(String.self, forKey: .status)
toPhoneCanonical = try container.decodeIfPresent(String.self, forKey: .toPhoneCanonical)
toPhoneDisplay = try container.decodeIfPresent(String.self, forKey: .toPhoneDisplay)
toPhoneRaw = try container.decodeIfPresent(String.self, forKey: .toPhoneRaw)
expiresAt = try container.decodeIfPresent(Date.self, forKey: .expiresAt)
eventId = try container.decodeIfPresent(Int.self, forKey: .eventId)
eventName = try container.decodeIfPresent(String.self, forKey: .eventName)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if transferToken != nil { try container.encode(transferToken, forKey: .transferToken) }
if status != nil { try container.encode(status, forKey: .status) }
if toPhoneCanonical != nil { try container.encode(toPhoneCanonical, forKey: .toPhoneCanonical) }
if toPhoneDisplay != nil { try container.encode(toPhoneDisplay, forKey: .toPhoneDisplay) }
if toPhoneRaw != nil { try container.encode(toPhoneRaw, forKey: .toPhoneRaw) }
if expiresAt != nil { try container.encode(expiresAt, forKey: .expiresAt) }
if eventId != nil { try container.encode(eventId, forKey: .eventId) }
if eventName != nil { try container.encode(eventName, forKey: .eventName) }
}
}
public class TicketTransferBaseResult : Codable
{
public var statusCode:Int?
public var message:String?
public var errorCode:String?
required public init(){}
}
Swift TicketTransferCreatePendingRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /ticketTransfer/createPending HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
phoneVerificationNumber: String,
transferFromPhoneVerificationNumber: String,
transferToPhoneVerificationNumber: String,
eventTicket:
{
id: 0,
userId: 0,
userAuthId: 0,
eventId: 0,
timestampBought: 0001-01-01,
timestampActivated: 0001-01-01,
timeStampOrdered: 0001-01-01,
deviceId: String,
phoneVerificationId: 0,
paymentMethodId: String,
paymentReference: String,
ticketStatus: String,
phoneVerificationNumber: String,
ticketTokenId: String,
paymentPhoneNumber: String,
ticketTransferredFrom: 0,
originalPhoneVerificationNumber: String,
teamPassId: 0,
paymentId: String,
isFree: False,
freeTicketFromId: String,
freeTicketFromTypeId: String,
freeTicketCardTypeId: String,
freeTicketCardId: 0,
totalPaidForTicket: 0,
seatsReservationId: String,
timeStampLastStatusChange: 0001-01-01,
lastTicketStatus: String,
scanCode: String,
scanCodeType: String,
scanCodeNotActive: False,
multipleScanCodes: False,
currency: String,
ticketHasExpired: False,
discountCode: String,
totalDiscount: 0,
totalAmountBeforeDiscount: 0
},
eventTicketDetails:
[
{
id: 0,
ticketId: 0,
eventSeriesTicketType: 0,
eventSeriesOwnerTicketType: 0,
ticketPrice: 0,
totalPrice: 0,
count: 0,
ticketColor: String,
showUsedTickets: False,
ticketName: String,
ticketDisplayString: String,
ticketDetailsTransferredFrom: 0,
teamPassId: 0,
isSpecialTicket: False,
specialTicketId: String,
justChangedBySQL: False,
sqlJustChangedTimeStamp: 0001-01-01,
currency: String,
discountCode: String,
totalDiscount: 0,
totalAmountBeforeDiscount: 0,
ticketPriceBeforeDiscount: 0
}
],
toEmail: String,
toName: String,
idempotencyKey: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
transferToken: String,
status: String,
toPhoneCanonical: String,
toPhoneDisplay: String,
toPhoneRaw: String,
expiresAt: 0001-01-01,
eventId: 0,
eventName: String,
statusCode: 0,
message: String,
errorCode: String
}