Betting.WebApi

<back to all web services

SubmitSlip

Requires Authentication
The following routes are available for this service:
POST/cmd/slips
import 'package:servicestack/servicestack.dart';

class Ref implements IConvertible
{
    String? id;
    String? val;

    Ref({this.id,this.val});
    Ref.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        val = json['val'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'val': val
    };

    getTypeName() => "Ref";
    TypeContext? context = _ctx;
}

class BettingApp implements IConvertible
{
    String? name;
    String? version;

    BettingApp({this.name,this.version});
    BettingApp.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        name = json['name'];
        version = json['version'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'name': name,
        'version': version
    };

    getTypeName() => "BettingApp";
    TypeContext? context = _ctx;
}

class RefEx extends Ref implements IConvertible
{
    RecordDictionary<String,String>? data;

    RefEx({this.data});
    RefEx.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        data = JsonConverters.fromJson(json['data'],'RecordDictionary<String,String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'data': JsonConverters.toJson(data,'RecordDictionary<String,String>',context!)
    });

    getTypeName() => "RefEx";
    TypeContext? context = _ctx;
}

class Origin implements IConvertible
{
    BettingApp? application;
    String? ip;
    RefEx? organization;
    Ref? region;
    Ref? locationGroup;
    RefEx? location;
    RefEx? device;
    Ref? clerk;

    Origin({this.application,this.ip,this.organization,this.region,this.locationGroup,this.location,this.device,this.clerk});
    Origin.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        application = JsonConverters.fromJson(json['application'],'BettingApp',context!);
        ip = json['ip'];
        organization = JsonConverters.fromJson(json['organization'],'RefEx',context!);
        region = JsonConverters.fromJson(json['region'],'Ref',context!);
        locationGroup = JsonConverters.fromJson(json['locationGroup'],'Ref',context!);
        location = JsonConverters.fromJson(json['location'],'RefEx',context!);
        device = JsonConverters.fromJson(json['device'],'RefEx',context!);
        clerk = JsonConverters.fromJson(json['clerk'],'Ref',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'application': JsonConverters.toJson(application,'BettingApp',context!),
        'ip': ip,
        'organization': JsonConverters.toJson(organization,'RefEx',context!),
        'region': JsonConverters.toJson(region,'Ref',context!),
        'locationGroup': JsonConverters.toJson(locationGroup,'Ref',context!),
        'location': JsonConverters.toJson(location,'RefEx',context!),
        'device': JsonConverters.toJson(device,'RefEx',context!),
        'clerk': JsonConverters.toJson(clerk,'Ref',context!)
    };

    getTypeName() => "Origin";
    TypeContext? context = _ctx;
}

class ProductReference implements IConvertible
{
    String? id;
    String? value;
    String? category;
    Ref? 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 = json['category'];
        productProvider = JsonConverters.fromJson(json['productProvider'],'Ref',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'value': value,
        'category': category,
        'productProvider': JsonConverters.toJson(productProvider,'Ref',context!)
    };

    getTypeName() => "ProductReference";
    TypeContext? context = _ctx;
}

class ProductInstanceRef implements IConvertible
{
    String? id;
    String? name;
    String? title;
    ProductReference? product;

    ProductInstanceRef({this.id,this.name,this.title,this.product});
    ProductInstanceRef.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        name = json['name'];
        title = json['title'];
        product = JsonConverters.fromJson(json['product'],'ProductReference',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'name': name,
        'title': title,
        'product': JsonConverters.toJson(product,'ProductReference',context!)
    };

    getTypeName() => "ProductInstanceRef";
    TypeContext? context = _ctx;
}

class PayinRecap implements IConvertible
{
    String? currency;
    double? payin;
    Ref? payinTaxationPolicyRef;
    double? taxAmount;
    double? stake;

    PayinRecap({this.currency,this.payin,this.payinTaxationPolicyRef,this.taxAmount,this.stake});
    PayinRecap.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        currency = json['currency'];
        payin = JsonConverters.toDouble(json['payin']);
        payinTaxationPolicyRef = JsonConverters.fromJson(json['payinTaxationPolicyRef'],'Ref',context!);
        taxAmount = JsonConverters.toDouble(json['taxAmount']);
        stake = JsonConverters.toDouble(json['stake']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'currency': currency,
        'payin': payin,
        'payinTaxationPolicyRef': JsonConverters.toJson(payinTaxationPolicyRef,'Ref',context!),
        'taxAmount': taxAmount,
        'stake': stake
    };

    getTypeName() => "PayinRecap";
    TypeContext? context = _ctx;
}

class PayoutRecap implements IConvertible
{
    String? currency;
    double? winnings;
    Ref? winningsTaxationPolicyRef;
    double? taxAmount;
    double? payout;

    PayoutRecap({this.currency,this.winnings,this.winningsTaxationPolicyRef,this.taxAmount,this.payout});
    PayoutRecap.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        currency = json['currency'];
        winnings = JsonConverters.toDouble(json['winnings']);
        winningsTaxationPolicyRef = JsonConverters.fromJson(json['winningsTaxationPolicyRef'],'Ref',context!);
        taxAmount = JsonConverters.toDouble(json['taxAmount']);
        payout = JsonConverters.toDouble(json['payout']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'currency': currency,
        'winnings': winnings,
        'winningsTaxationPolicyRef': JsonConverters.toJson(winningsTaxationPolicyRef,'Ref',context!),
        'taxAmount': taxAmount,
        'payout': payout
    };

    getTypeName() => "PayoutRecap";
    TypeContext? context = _ctx;
}

class BetRequest implements IConvertible
{
    String? betId;
    ProductInstanceRef? productInstance;
    Map<String,String?>? payload;
    PayinRecap? payinRecap;
    PayoutRecap? possiblePayoutRecap;

    BetRequest({this.betId,this.productInstance,this.payload,this.payinRecap,this.possiblePayoutRecap});
    BetRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        betId = json['betId'];
        productInstance = JsonConverters.fromJson(json['productInstance'],'ProductInstanceRef',context!);
        payload = JsonConverters.toStringMap(json['payload']);
        payinRecap = JsonConverters.fromJson(json['payinRecap'],'PayinRecap',context!);
        possiblePayoutRecap = JsonConverters.fromJson(json['possiblePayoutRecap'],'PayoutRecap',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'betId': betId,
        'productInstance': JsonConverters.toJson(productInstance,'ProductInstanceRef',context!),
        'payload': payload,
        'payinRecap': JsonConverters.toJson(payinRecap,'PayinRecap',context!),
        'possiblePayoutRecap': JsonConverters.toJson(possiblePayoutRecap,'PayoutRecap',context!)
    };

    getTypeName() => "BetRequest";
    TypeContext? context = _ctx;
}

class SubmitSlip implements IConvertible
{
    String? id;
    Ref? bettor;
    Origin? origin;
    List<BetRequest>? betRequests;
    Map<String,String?>? headerData;

    SubmitSlip({this.id,this.bettor,this.origin,this.betRequests,this.headerData});
    SubmitSlip.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        bettor = JsonConverters.fromJson(json['bettor'],'Ref',context!);
        origin = JsonConverters.fromJson(json['origin'],'Origin',context!);
        betRequests = JsonConverters.fromJson(json['betRequests'],'List<BetRequest>',context!);
        headerData = JsonConverters.toStringMap(json['headerData']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'bettor': JsonConverters.toJson(bettor,'Ref',context!),
        'origin': JsonConverters.toJson(origin,'Origin',context!),
        'betRequests': JsonConverters.toJson(betRequests,'List<BetRequest>',context!),
        'headerData': headerData
    };

    getTypeName() => "SubmitSlip";
    TypeContext? context = _ctx;
}

class RecordDictionary<TKey,TVal> extends Map<TKey,TVal?> implements IConvertible
{
    RecordDictionary();
    RecordDictionary.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "RecordDictionary<$TKey,$TVal>";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.sbbet.ath.cx', types: <String, TypeInfo> {
    'Ref': TypeInfo(TypeOf.Class, create:() => Ref()),
    'BettingApp': TypeInfo(TypeOf.Class, create:() => BettingApp()),
    'RefEx': TypeInfo(TypeOf.Class, create:() => RefEx()),
    'RecordDictionary<String,String>': TypeInfo(TypeOf.Class, create:() => RecordDictionary<String,String>()),
    'Origin': TypeInfo(TypeOf.Class, create:() => Origin()),
    'ProductReference': TypeInfo(TypeOf.Class, create:() => ProductReference()),
    'ProductInstanceRef': TypeInfo(TypeOf.Class, create:() => ProductInstanceRef()),
    'PayinRecap': TypeInfo(TypeOf.Class, create:() => PayinRecap()),
    'PayoutRecap': TypeInfo(TypeOf.Class, create:() => PayoutRecap()),
    'BetRequest': TypeInfo(TypeOf.Class, create:() => BetRequest()),
    'SubmitSlip': TypeInfo(TypeOf.Class, create:() => SubmitSlip()),
    'List<BetRequest>': TypeInfo(TypeOf.Class, create:() => <BetRequest>[]),
    'RecordDictionary<TKey,TVal>': TypeInfo(TypeOf.GenericDef,create:() => RecordDictionary()),
});

Dart SubmitSlip DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /cmd/slips HTTP/1.1 
Host: api.sbbet.ath.cx 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"id":"String","bettor":{"id":"String","val":"String"},"origin":{"application":{"name":"String","version":"String"},"ip":"String","organization":{"data":{"String":"String"},"id":"String","val":"String"},"region":{"id":"String","val":"String"},"locationGroup":{"id":"String","val":"String"},"location":{"data":{"String":"String"},"id":"String","val":"String"},"device":{"data":{"String":"String"},"id":"String","val":"String"},"clerk":{"id":"String","val":"String"}},"betRequests":[{"betId":"String","productInstance":{"id":"String","name":"String","title":"String","product":{"id":"String","value":"String","category":"String","productProvider":{"id":"String","val":"String"}}},"payload":{"String":"String"},"payinRecap":{"currency":"String","payin":0,"payinTaxationPolicyRef":{"id":"String","val":"String"},"taxAmount":0,"stake":0},"possiblePayoutRecap":{"currency":"String","winnings":0,"winningsTaxationPolicyRef":{"id":"String","val":"String"},"taxAmount":0,"payout":0}}],"headerData":{"String":"String"}}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}