| Requires any of the roles: | Admin, TeamAdmin | Requires the permission: | ReadData |
| POST | /TransferTicketToEvent | Transfer a ticket to a different event with automatic price reconciliation |
|---|
import 'package:servicestack/servicestack.dart';
class TransferRefundInstruction implements IConvertible
{
double? amountIsk;
String? paymentReference;
String? instruction;
TransferRefundInstruction({this.amountIsk,this.paymentReference,this.instruction});
TransferRefundInstruction.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
amountIsk = JsonConverters.toDouble(json['amountIsk']);
paymentReference = json['paymentReference'];
instruction = json['instruction'];
return this;
}
Map<String, dynamic> toJson() => {
'amountIsk': amountIsk,
'paymentReference': paymentReference,
'instruction': instruction
};
getTypeName() => "TransferRefundInstruction";
TypeContext? context = _ctx;
}
class TransferTopupInstruction implements IConvertible
{
double? amountIsk;
String? paymentLinkUrl;
String? sessionToken;
DateTime? expiresAt;
TransferTopupInstruction({this.amountIsk,this.paymentLinkUrl,this.sessionToken,this.expiresAt});
TransferTopupInstruction.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
amountIsk = JsonConverters.toDouble(json['amountIsk']);
paymentLinkUrl = json['paymentLinkUrl'];
sessionToken = json['sessionToken'];
expiresAt = JsonConverters.fromJson(json['expiresAt'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'amountIsk': amountIsk,
'paymentLinkUrl': paymentLinkUrl,
'sessionToken': sessionToken,
'expiresAt': JsonConverters.toJson(expiresAt,'DateTime',context!)
};
getTypeName() => "TransferTopupInstruction";
TypeContext? context = _ctx;
}
class TransferQuoteEventSide implements IConvertible
{
int? eventId;
String? eventName;
DateTime? timeOfEvent;
double? ticketPrice;
String? paymentMethodId;
String? paymentReference;
int? availableSeats;
TransferQuoteEventSide({this.eventId,this.eventName,this.timeOfEvent,this.ticketPrice,this.paymentMethodId,this.paymentReference,this.availableSeats});
TransferQuoteEventSide.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
eventId = json['eventId'];
eventName = json['eventName'];
timeOfEvent = JsonConverters.fromJson(json['timeOfEvent'],'DateTime',context!);
ticketPrice = JsonConverters.toDouble(json['ticketPrice']);
paymentMethodId = json['paymentMethodId'];
paymentReference = json['paymentReference'];
availableSeats = json['availableSeats'];
return this;
}
Map<String, dynamic> toJson() => {
'eventId': eventId,
'eventName': eventName,
'timeOfEvent': JsonConverters.toJson(timeOfEvent,'DateTime',context!),
'ticketPrice': ticketPrice,
'paymentMethodId': paymentMethodId,
'paymentReference': paymentReference,
'availableSeats': availableSeats
};
getTypeName() => "TransferQuoteEventSide";
TypeContext? context = _ctx;
}
class TransferTicketQuoteResult implements IConvertible
{
bool? ok;
int? statusCode;
String? code;
String? message;
TransferQuoteEventSide? from;
TransferQuoteEventSide? to;
double? priceDifference;
String? direction;
bool? refundableViaBorgun;
bool? afterPayout;
TransferTicketQuoteResult({this.ok,this.statusCode,this.code,this.message,this.from,this.to,this.priceDifference,this.direction,this.refundableViaBorgun,this.afterPayout});
TransferTicketQuoteResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ok = json['ok'];
statusCode = json['statusCode'];
code = json['code'];
message = json['message'];
from = JsonConverters.fromJson(json['from'],'TransferQuoteEventSide',context!);
to = JsonConverters.fromJson(json['to'],'TransferQuoteEventSide',context!);
priceDifference = JsonConverters.toDouble(json['priceDifference']);
direction = json['direction'];
refundableViaBorgun = json['refundableViaBorgun'];
afterPayout = json['afterPayout'];
return this;
}
Map<String, dynamic> toJson() => {
'ok': ok,
'statusCode': statusCode,
'code': code,
'message': message,
'from': JsonConverters.toJson(from,'TransferQuoteEventSide',context!),
'to': JsonConverters.toJson(to,'TransferQuoteEventSide',context!),
'priceDifference': priceDifference,
'direction': direction,
'refundableViaBorgun': refundableViaBorgun,
'afterPayout': afterPayout
};
getTypeName() => "TransferTicketQuoteResult";
TypeContext? context = _ctx;
}
class TransferTicketToEventResult implements IConvertible
{
bool? ok;
int? statusCode;
String? code;
String? message;
int? transferLogId;
String? newTicketTokenId;
String? direction;
double? priceDifference;
double? originalTicketPrice;
double? targetTicketPrice;
bool? sourceEventPaidOut;
bool? outstandingCostHandledByServer;
TransferRefundInstruction? refund;
TransferTopupInstruction? topup;
TransferTicketQuoteResult? quote;
TransferTicketToEventResult({this.ok,this.statusCode,this.code,this.message,this.transferLogId,this.newTicketTokenId,this.direction,this.priceDifference,this.originalTicketPrice,this.targetTicketPrice,this.sourceEventPaidOut,this.outstandingCostHandledByServer,this.refund,this.topup,this.quote});
TransferTicketToEventResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ok = json['ok'];
statusCode = json['statusCode'];
code = json['code'];
message = json['message'];
transferLogId = json['transferLogId'];
newTicketTokenId = json['newTicketTokenId'];
direction = json['direction'];
priceDifference = JsonConverters.toDouble(json['priceDifference']);
originalTicketPrice = JsonConverters.toDouble(json['originalTicketPrice']);
targetTicketPrice = JsonConverters.toDouble(json['targetTicketPrice']);
sourceEventPaidOut = json['sourceEventPaidOut'];
outstandingCostHandledByServer = json['outstandingCostHandledByServer'];
refund = JsonConverters.fromJson(json['refund'],'TransferRefundInstruction',context!);
topup = JsonConverters.fromJson(json['topup'],'TransferTopupInstruction',context!);
quote = JsonConverters.fromJson(json['quote'],'TransferTicketQuoteResult',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ok': ok,
'statusCode': statusCode,
'code': code,
'message': message,
'transferLogId': transferLogId,
'newTicketTokenId': newTicketTokenId,
'direction': direction,
'priceDifference': priceDifference,
'originalTicketPrice': originalTicketPrice,
'targetTicketPrice': targetTicketPrice,
'sourceEventPaidOut': sourceEventPaidOut,
'outstandingCostHandledByServer': outstandingCostHandledByServer,
'refund': JsonConverters.toJson(refund,'TransferRefundInstruction',context!),
'topup': JsonConverters.toJson(topup,'TransferTopupInstruction',context!),
'quote': JsonConverters.toJson(quote,'TransferTicketQuoteResult',context!)
};
getTypeName() => "TransferTicketToEventResult";
TypeContext? context = _ctx;
}
class TransferTicketToEventRequest implements IConvertible
{
String? ticketTokenId;
int? toEventId;
int? userId;
String? reason;
String? idempotencyKey;
double? expectedPriceDifference;
int? toOwnerTicketTypeId;
int? toSeriesTicketTypeId;
int? toSeatId;
TransferTicketToEventRequest({this.ticketTokenId,this.toEventId,this.userId,this.reason,this.idempotencyKey,this.expectedPriceDifference,this.toOwnerTicketTypeId,this.toSeriesTicketTypeId,this.toSeatId});
TransferTicketToEventRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ticketTokenId = json['ticketTokenId'];
toEventId = json['toEventId'];
userId = json['userId'];
reason = json['reason'];
idempotencyKey = json['idempotencyKey'];
expectedPriceDifference = JsonConverters.toDouble(json['expectedPriceDifference']);
toOwnerTicketTypeId = json['toOwnerTicketTypeId'];
toSeriesTicketTypeId = json['toSeriesTicketTypeId'];
toSeatId = json['toSeatId'];
return this;
}
Map<String, dynamic> toJson() => {
'ticketTokenId': ticketTokenId,
'toEventId': toEventId,
'userId': userId,
'reason': reason,
'idempotencyKey': idempotencyKey,
'expectedPriceDifference': expectedPriceDifference,
'toOwnerTicketTypeId': toOwnerTicketTypeId,
'toSeriesTicketTypeId': toSeriesTicketTypeId,
'toSeatId': toSeatId
};
getTypeName() => "TransferTicketToEventRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
'TransferRefundInstruction': TypeInfo(TypeOf.Class, create:() => TransferRefundInstruction()),
'TransferTopupInstruction': TypeInfo(TypeOf.Class, create:() => TransferTopupInstruction()),
'TransferQuoteEventSide': TypeInfo(TypeOf.Class, create:() => TransferQuoteEventSide()),
'TransferTicketQuoteResult': TypeInfo(TypeOf.Class, create:() => TransferTicketQuoteResult()),
'TransferTicketToEventResult': TypeInfo(TypeOf.Class, create:() => TransferTicketToEventResult()),
'TransferTicketToEventRequest': TypeInfo(TypeOf.Class, create:() => TransferTicketToEventRequest()),
});
Dart TransferTicketToEventRequest 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 /TransferTicketToEvent HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ticketTokenId: String,
toEventId: 0,
userId: 0,
reason: String,
idempotencyKey: String,
expectedPriceDifference: 0,
toOwnerTicketTypeId: 0,
toSeriesTicketTypeId: 0,
toSeatId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ok: False,
statusCode: 0,
code: String,
message: String,
transferLogId: 0,
newTicketTokenId: String,
direction: String,
priceDifference: 0,
originalTicketPrice: 0,
targetTicketPrice: 0,
sourceEventPaidOut: False,
outstandingCostHandledByServer: False,
refund:
{
amountIsk: 0,
paymentReference: String,
instruction: String
},
topup:
{
amountIsk: 0,
paymentLinkUrl: String,
sessionToken: String,
expiresAt: 0001-01-01
},
quote:
{
ok: False,
statusCode: 0,
code: String,
message: String,
from:
{
eventId: 0,
eventName: String,
timeOfEvent: 0001-01-01,
ticketPrice: 0,
paymentMethodId: String,
paymentReference: String,
availableSeats: 0
},
to:
{
eventId: 0,
eventName: String,
timeOfEvent: 0001-01-01,
ticketPrice: 0,
paymentMethodId: String,
paymentReference: String,
availableSeats: 0
},
priceDifference: 0,
direction: String,
refundableViaBorgun: False,
afterPayout: False
}
}