Requires any of the roles: | Admin, TeamAdmin, MobileApp | Requires the permission: | ReadData |
GET POST | /ticketOrder/find |
---|
import Foundation
import ServiceStack
public class FindTicketsRequest : Codable
{
public var phoneVerificationNumber:String?
public var deviceId:String?
public var onlyFromCurrentDate:Bool?
public var onlyUnUsed:Bool?
public var requestUnixUTCTimeStamp:Int?
public var signature:RequestSignature?
public var includeTransferredTickets:Bool?
public var fromDate:Date?
required public init(){}
}
public class RequestSignature : Codable
{
public var systemId:String?
public var systemSecret:String?
public var signature:String?
required public init(){}
}
public class TicketOrdersResult : Codable
{
public var ticketAndDetails:EventTicketWithDetails?
public var ticketsAndDetails:[EventTicketWithDetails] = []
public var needs3DVerification:Bool?
public var redirectToACSForm:String?
public var redirectionACSFields:[RedirectionACSField] = []
public var statusCode:Int?
public var message:String?
required public init(){}
}
public class EventTicketWithDetails : Codable
{
public var eventTicket:Ticket?
public var eventTicketDetails:[TicketDetailsInfo] = []
public var eventInfo:EventDetails?
public var eventIsToday:Bool?
public var eventisLive:Bool?
public var minutesToEvent:Int?
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?
required public init(){}
}
public class TicketDetailsInfo : TicketDetails
{
public var holderInfoRequired:Bool?
public var blockTransfer:Bool?
public var ticketTypeImageUrl:String?
public var ticketHolders:[TicketHolderInfo] = []
public var gateAccessCodes:[ExternalGateAccessCodeInfo] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case holderInfoRequired
case blockTransfer
case ticketTypeImageUrl
case ticketHolders
case gateAccessCodes
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
holderInfoRequired = try container.decodeIfPresent(Bool.self, forKey: .holderInfoRequired)
blockTransfer = try container.decodeIfPresent(Bool.self, forKey: .blockTransfer)
ticketTypeImageUrl = try container.decodeIfPresent(String.self, forKey: .ticketTypeImageUrl)
ticketHolders = try container.decodeIfPresent([TicketHolderInfo].self, forKey: .ticketHolders) ?? []
gateAccessCodes = try container.decodeIfPresent([ExternalGateAccessCodeInfo].self, forKey: .gateAccessCodes) ?? []
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if holderInfoRequired != nil { try container.encode(holderInfoRequired, forKey: .holderInfoRequired) }
if blockTransfer != nil { try container.encode(blockTransfer, forKey: .blockTransfer) }
if ticketTypeImageUrl != nil { try container.encode(ticketTypeImageUrl, forKey: .ticketTypeImageUrl) }
if ticketHolders.count > 0 { try container.encode(ticketHolders, forKey: .ticketHolders) }
if gateAccessCodes.count > 0 { try container.encode(gateAccessCodes, forKey: .gateAccessCodes) }
}
}
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?
required public init(){}
}
public class TicketHolderInfo : Codable
{
public var name:String?
public var fullPhoneNumber:String?
public var holderId:String?
public var seatId:Int?
public var seatDisplayString:String?
required public init(){}
}
public class ExternalGateAccessCodeInfo : Codable
{
public var code:String?
public var codeType:String?
public var codeUrl:String?
public var validFrom:Date?
public var validTo:Date?
required public init(){}
}
public class EventDetails : Codable
{
public var id:Int?
public var name:String?
public var Description:String?
public var externalReference:String?
public var timeOfEvent:Date?
public var eventLocationId:Int?
public var eventSeriesId:Int?
public var eventOwnerId:Int?
public var eventActive:Bool?
public var eventOwnerName:String?
public var externalOwnerId:String?
public var teamAwayId:String?
public var teamAwayName:String?
public var eventSeriesName:String?
public var eventLocationName:String?
public var latitude:Double?
public var longitude:Double?
public var defaultValues:String?
public var externalReferenceType:String?
public var eventSeriesActive:Bool?
public var allowedKsiCard:String?
public var seriesId:String?
public var seriesShowByDefault:Bool?
public var postponedNoDate:Bool?
public var awayTeamExternalId:String?
public var sportGenderId:String?
public var externalIdType:String?
public var seriesEventSaleSuspended:Bool?
public var seriesSaleSuspensionEventStartDate:Date?
public var seriesSaleSuspensionEventEndDate:Date?
public var saleIsActive:Bool?
public var hideEvent:Bool?
public var imageUrl2:String?
public var directAccessCode:String?
public var imageUrl:String?
public var detailedDescription:String?
public var ownerImageUrl:String?
public var ownerImageUrl2:String?
public var ownerCardsNotAllowed:Bool?
public var seatingImageUrl:String?
public var endOfEvent:Date?
public var endOfEventUTC:Date?
public var timeZone:String?
public var timeOfEventUTC:Date?
required public init(){}
}
public class RedirectionACSField : Codable
{
public var name:String?
public var value:String?
required public init(){}
}
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 /ticketOrder/find HTTP/1.1
Host: stubbur-autoupdates-live.smartnewapis.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
phoneVerificationNumber: String,
deviceId: String,
onlyFromCurrentDate: False,
onlyUnUsed: False,
requestUnixUTCTimeStamp: 0,
signature:
{
systemId: String,
systemSecret: String,
signature: String
},
includeTransferredTickets: False,
fromDate: 0001-01-01
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { ticketAndDetails: { 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 }, eventTicketDetails: [ { } ], eventInfo: { id: 0, name: String, description: String, externalReference: String, timeOfEvent: 0001-01-01, eventLocationId: 0, eventSeriesId: 0, eventOwnerId: 0, eventActive: False, eventOwnerName: String, externalOwnerId: String, teamAwayId: String, teamAwayName: String, eventSeriesName: String, eventLocationName: String, latitude: 0, longitude: 0, defaultValues: String, externalReferenceType: String, eventSeriesActive: False, allowedKsiCard: String, seriesId: String, seriesShowByDefault: False, postponedNoDate: False, awayTeamExternalId: String, sportGenderId: String, externalIdType: String, seriesEventSaleSuspended: False, seriesSaleSuspensionEventStartDate: 0001-01-01, seriesSaleSuspensionEventEndDate: 0001-01-01, saleIsActive: False, hideEvent: False, imageUrl2: String, directAccessCode: String, imageUrl: String, detailedDescription: String, ownerImageUrl: String, ownerImageUrl2: String, ownerCardsNotAllowed: False, seatingImageUrl: String, endOfEvent: 0001-01-01, endOfEventUTC: 0001-01-01, timeZone: String, timeOfEventUTC: 0001-01-01 }, eventIsToday: False, eventisLive: False, minutesToEvent: 0 }, ticketsAndDetails: [ { 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 }, eventTicketDetails: [ { } ], eventInfo: { id: 0, name: String, description: String, externalReference: String, timeOfEvent: 0001-01-01, eventLocationId: 0, eventSeriesId: 0, eventOwnerId: 0, eventActive: False, eventOwnerName: String, externalOwnerId: String, teamAwayId: String, teamAwayName: String, eventSeriesName: String, eventLocationName: String, latitude: 0, longitude: 0, defaultValues: String, externalReferenceType: String, eventSeriesActive: False, allowedKsiCard: String, seriesId: String, seriesShowByDefault: False, postponedNoDate: False, awayTeamExternalId: String, sportGenderId: String, externalIdType: String, seriesEventSaleSuspended: False, seriesSaleSuspensionEventStartDate: 0001-01-01, seriesSaleSuspensionEventEndDate: 0001-01-01, saleIsActive: False, hideEvent: False, imageUrl2: String, directAccessCode: String, imageUrl: String, detailedDescription: String, ownerImageUrl: String, ownerImageUrl2: String, ownerCardsNotAllowed: False, seatingImageUrl: String, endOfEvent: 0001-01-01, endOfEventUTC: 0001-01-01, timeZone: String, timeOfEventUTC: 0001-01-01 }, eventIsToday: False, eventisLive: False, minutesToEvent: 0 } ], needs3DVerification: False, redirectToACSForm: String, redirectionACSFields: [ { name: String, value: String } ], statusCode: 0, message: String }