| POST | /bets/place |
|---|
import 'package:servicestack/servicestack.dart';
class BettorState implements IConvertible
{
String? id;
double? accountBalanceBeforeBet;
double? accountBalanceAfterBet;
BettorState({this.id,this.accountBalanceBeforeBet,this.accountBalanceAfterBet});
BettorState.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
accountBalanceBeforeBet = JsonConverters.toDouble(json['accountBalanceBeforeBet']);
accountBalanceAfterBet = JsonConverters.toDouble(json['accountBalanceAfterBet']);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'accountBalanceBeforeBet': accountBalanceBeforeBet,
'accountBalanceAfterBet': accountBalanceAfterBet
};
getTypeName() => "BettorState";
TypeContext? context = _ctx;
}
class Reference implements IConvertible
{
String? id;
String? value;
Reference({this.id,this.value});
Reference.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
value = json['value'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'value': value
};
getTypeName() => "Reference";
TypeContext? context = _ctx;
}
class ProductCategory
{
static const ProductCategory Sportsbook = const ProductCategory._(0);
static const ProductCategory RNG = const ProductCategory._(1);
final int _value;
const ProductCategory._(this._value);
int get value => _value;
static List<ProductCategory> get values => const [Sportsbook,RNG];
}
class ProductReference implements IConvertible
{
String? id;
String? value;
ProductCategory? category;
Reference? productProvider;
ProductReference({this.id,this.value,this.category,this.productProvider});
ProductReference.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
value = json['value'];
category = JsonConverters.fromJson(json['category'],'ProductCategory',context!);
productProvider = JsonConverters.fromJson(json['productProvider'],'Reference',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'value': value,
'category': JsonConverters.toJson(category,'ProductCategory',context!),
'productProvider': JsonConverters.toJson(productProvider,'Reference',context!)
};
getTypeName() => "ProductReference";
TypeContext? context = _ctx;
}
class ProductInstanceRef implements IConvertible
{
String? id;
String? name;
ProductReference? product;
ProductInstanceRef({this.id,this.name,this.product});
ProductInstanceRef.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
product = JsonConverters.fromJson(json['product'],'ProductReference',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'product': JsonConverters.toJson(product,'ProductReference',context!)
};
getTypeName() => "ProductInstanceRef";
TypeContext? context = _ctx;
}
class Origin implements IConvertible
{
Reference? device;
Reference? location;
Reference? locationGroup;
Reference? organization;
ProductInstanceRef? productInstance;
Origin({this.device,this.location,this.locationGroup,this.organization,this.productInstance});
Origin.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
device = JsonConverters.fromJson(json['device'],'Reference',context!);
location = JsonConverters.fromJson(json['location'],'Reference',context!);
locationGroup = JsonConverters.fromJson(json['locationGroup'],'Reference',context!);
organization = JsonConverters.fromJson(json['organization'],'Reference',context!);
productInstance = JsonConverters.fromJson(json['productInstance'],'ProductInstanceRef',context!);
return this;
}
Map<String, dynamic> toJson() => {
'device': JsonConverters.toJson(device,'Reference',context!),
'location': JsonConverters.toJson(location,'Reference',context!),
'locationGroup': JsonConverters.toJson(locationGroup,'Reference',context!),
'organization': JsonConverters.toJson(organization,'Reference',context!),
'productInstance': JsonConverters.toJson(productInstance,'ProductInstanceRef',context!)
};
getTypeName() => "Origin";
TypeContext? context = _ctx;
}
class PaymentOrigin
{
static const PaymentOrigin POS = const PaymentOrigin._(0);
static const PaymentOrigin SMS = const PaymentOrigin._(1);
static const PaymentOrigin Internet = const PaymentOrigin._(2);
final int _value;
const PaymentOrigin._(this._value);
int get value => _value;
static List<PaymentOrigin> get values => const [POS,SMS,Internet];
}
class PayinRecap implements IConvertible
{
double? payin;
double? taxAmount;
double? stake;
PayinRecap({this.payin,this.taxAmount,this.stake});
PayinRecap.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
payin = JsonConverters.toDouble(json['payin']);
taxAmount = JsonConverters.toDouble(json['taxAmount']);
stake = JsonConverters.toDouble(json['stake']);
return this;
}
Map<String, dynamic> toJson() => {
'payin': payin,
'taxAmount': taxAmount,
'stake': stake
};
getTypeName() => "PayinRecap";
TypeContext? context = _ctx;
}
class PayoutRecap implements IConvertible
{
double? winnings;
double? taxAmount;
double? payout;
PayoutRecap({this.winnings,this.taxAmount,this.payout});
PayoutRecap.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
winnings = JsonConverters.toDouble(json['winnings']);
taxAmount = JsonConverters.toDouble(json['taxAmount']);
payout = JsonConverters.toDouble(json['payout']);
return this;
}
Map<String, dynamic> toJson() => {
'winnings': winnings,
'taxAmount': taxAmount,
'payout': payout
};
getTypeName() => "PayoutRecap";
TypeContext? context = _ctx;
}
class BetPlacement implements IConvertible
{
String? id;
String? betCode;
BettorState? bettorState;
Origin? origin;
DateTime? betIssuedAt;
bool? isLive;
bool? isSystemBet;
Map<String,String?>? payload;
PaymentOrigin? paymentOrigin;
PayinRecap? payinRecap;
PayoutRecap? possiblePayoutRecap;
BetPlacement({this.id,this.betCode,this.bettorState,this.origin,this.betIssuedAt,this.isLive,this.isSystemBet,this.payload,this.paymentOrigin,this.payinRecap,this.possiblePayoutRecap});
BetPlacement.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
betCode = json['betCode'];
bettorState = JsonConverters.fromJson(json['bettorState'],'BettorState',context!);
origin = JsonConverters.fromJson(json['origin'],'Origin',context!);
betIssuedAt = JsonConverters.fromJson(json['betIssuedAt'],'DateTime',context!);
isLive = json['isLive'];
isSystemBet = json['isSystemBet'];
payload = JsonConverters.toStringMap(json['payload']);
paymentOrigin = JsonConverters.fromJson(json['paymentOrigin'],'PaymentOrigin',context!);
payinRecap = JsonConverters.fromJson(json['payinRecap'],'PayinRecap',context!);
possiblePayoutRecap = JsonConverters.fromJson(json['possiblePayoutRecap'],'PayoutRecap',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'betCode': betCode,
'bettorState': JsonConverters.toJson(bettorState,'BettorState',context!),
'origin': JsonConverters.toJson(origin,'Origin',context!),
'betIssuedAt': JsonConverters.toJson(betIssuedAt,'DateTime',context!),
'isLive': isLive,
'isSystemBet': isSystemBet,
'payload': payload,
'paymentOrigin': JsonConverters.toJson(paymentOrigin,'PaymentOrigin',context!),
'payinRecap': JsonConverters.toJson(payinRecap,'PayinRecap',context!),
'possiblePayoutRecap': JsonConverters.toJson(possiblePayoutRecap,'PayoutRecap',context!)
};
getTypeName() => "BetPlacement";
TypeContext? context = _ctx;
}
class ReportBetPlacements implements IConvertible
{
List<BetPlacement>? betPlacements;
ReportBetPlacements({this.betPlacements});
ReportBetPlacements.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
betPlacements = JsonConverters.fromJson(json['betPlacements'],'List<BetPlacement>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'betPlacements': JsonConverters.toJson(betPlacements,'List<BetPlacement>',context!)
};
getTypeName() => "ReportBetPlacements";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'fbihtaapi.bettor.webhop.biz', types: <String, TypeInfo> {
'BettorState': TypeInfo(TypeOf.Class, create:() => BettorState()),
'Reference': TypeInfo(TypeOf.Class, create:() => Reference()),
'ProductCategory': TypeInfo(TypeOf.Enum, enumValues:ProductCategory.values),
'ProductReference': TypeInfo(TypeOf.Class, create:() => ProductReference()),
'ProductInstanceRef': TypeInfo(TypeOf.Class, create:() => ProductInstanceRef()),
'Origin': TypeInfo(TypeOf.Class, create:() => Origin()),
'PaymentOrigin': TypeInfo(TypeOf.Enum, enumValues:PaymentOrigin.values),
'PayinRecap': TypeInfo(TypeOf.Class, create:() => PayinRecap()),
'PayoutRecap': TypeInfo(TypeOf.Class, create:() => PayoutRecap()),
'BetPlacement': TypeInfo(TypeOf.Class, create:() => BetPlacement()),
'ReportBetPlacements': TypeInfo(TypeOf.Class, create:() => ReportBetPlacements()),
'List<BetPlacement>': TypeInfo(TypeOf.Class, create:() => <BetPlacement>[]),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /bets/place HTTP/1.1
Host: fbihtaapi.bettor.webhop.biz
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<ReportBetPlacements xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/FBiHBetting.Aggregator.WebApi.ServiceModel">
<BetPlacements>
<BetPlacement>
<BetCode>String</BetCode>
<BetIssuedAt>0001-01-01T00:00:00</BetIssuedAt>
<BettorState>
<AccountBalanceAfterBet>0</AccountBalanceAfterBet>
<AccountBalanceBeforeBet>0</AccountBalanceBeforeBet>
<Id>String</Id>
</BettorState>
<Id>String</Id>
<IsLive>false</IsLive>
<IsSystemBet>false</IsSystemBet>
<Origin>
<Device>
<Id>String</Id>
<Value>String</Value>
</Device>
<Location>
<Id>String</Id>
<Value>String</Value>
</Location>
<LocationGroup>
<Id>String</Id>
<Value>String</Value>
</LocationGroup>
<Organization>
<Id>String</Id>
<Value>String</Value>
</Organization>
<ProductInstance>
<Id>String</Id>
<Name>String</Name>
<Product>
<Category>Sportsbook</Category>
<Id>String</Id>
<ProductProvider>
<Id>String</Id>
<Value>String</Value>
</ProductProvider>
<Value>String</Value>
</Product>
</ProductInstance>
</Origin>
<PayinRecap>
<Payin>0</Payin>
<Stake>0</Stake>
<TaxAmount>0</TaxAmount>
</PayinRecap>
<Payload xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfstringstring>
<d4p1:Key>String</d4p1:Key>
<d4p1:Value>String</d4p1:Value>
</d4p1:KeyValueOfstringstring>
</Payload>
<PaymentOrigin>POS</PaymentOrigin>
<PossiblePayoutRecap>
<Payout>0</Payout>
<TaxAmount>0</TaxAmount>
<Winnings>0</Winnings>
</PossiblePayoutRecap>
</BetPlacement>
</BetPlacements>
</ReportBetPlacements>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<ResponseStatus xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
<ErrorCode>String</ErrorCode>
<Message>String</Message>
<StackTrace>String</StackTrace>
<Errors>
<ResponseError>
<ErrorCode>String</ErrorCode>
<FieldName>String</FieldName>
<Message>String</Message>
<Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfstringstring>
<d4p1:Key>String</d4p1:Key>
<d4p1:Value>String</d4p1:Value>
</d4p1:KeyValueOfstringstring>
</Meta>
</ResponseError>
</Errors>
<Meta xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:KeyValueOfstringstring>
<d2p1:Key>String</d2p1:Key>
<d2p1:Value>String</d2p1:Value>
</d2p1:KeyValueOfstringstring>
</Meta>
</ResponseStatus>