FBiHBetting.Aggregator.WebApi

<back to all web services

ReportBetPlacements

The following routes are available for this service:
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>[]),
});

Dart ReportBetPlacements 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 /bets/place HTTP/1.1 
Host: fbihtaapi.bettor.webhop.biz 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"betPlacements":[{"id":"String","betCode":"String","bettorState":{"id":"String","accountBalanceBeforeBet":0,"accountBalanceAfterBet":0},"origin":{"device":{"id":"String","value":"String"},"location":{"id":"String","value":"String"},"locationGroup":{"id":"String","value":"String"},"organization":{"id":"String","value":"String"},"productInstance":{"id":"String","name":"String","product":{"id":"String","value":"String","category":0,"productProvider":{"id":"String","value":"String"}}}},"betIssuedAt":"0001-01-01T00:00:00.0000000Z","isLive":false,"isSystemBet":false,"payload":{"String":"String"},"paymentOrigin":0,"payinRecap":{"payin":0,"taxAmount":0,"stake":0},"possiblePayoutRecap":{"winnings":0,"taxAmount":0,"payout":0}}]}
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"}}