Greyhounds.WebApi

<back to all web services

PlaceBets

The following routes are available for this service:
POST/bets/v2
import 'package:servicestack/servicestack.dart';

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 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 Origin implements IConvertible
{
    BettingApp? application;
    String? ip;
    Reference? organization;
    Reference? device;
    Reference? location;
    Reference? locationGroup;
    Reference? clerk;

    Origin({this.application,this.ip,this.organization,this.device,this.location,this.locationGroup,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'],'Reference',context!);
        device = JsonConverters.fromJson(json['device'],'Reference',context!);
        location = JsonConverters.fromJson(json['location'],'Reference',context!);
        locationGroup = JsonConverters.fromJson(json['locationGroup'],'Reference',context!);
        clerk = JsonConverters.fromJson(json['clerk'],'Reference',context!);
        return this;
    }

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

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

class Bet implements IConvertible
{
    String? id;
    String? jpId;
    String? roundId;
    int outcomeId = 0;
    double odds = 0;
    double stake = 0;

    Bet({this.id,this.jpId,this.roundId,this.outcomeId,this.odds,this.stake});
    Bet.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        jpId = json['jpId'];
        roundId = json['roundId'];
        outcomeId = json['outcomeId'];
        odds = JsonConverters.toDouble(json['odds']);
        stake = JsonConverters.toDouble(json['stake']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'jpId': jpId,
        'roundId': roundId,
        'outcomeId': outcomeId,
        'odds': odds,
        'stake': stake
    };

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

class PlaceBets implements IConvertible
{
    String? slipId;
    Reference? bettor;
    Origin? origin;
    DateTime placedAt = DateTime(0);
    List<Bet>? bets;

    PlaceBets({this.slipId,this.bettor,this.origin,this.placedAt,this.bets});
    PlaceBets.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        slipId = json['slipId'];
        bettor = JsonConverters.fromJson(json['bettor'],'Reference',context!);
        origin = JsonConverters.fromJson(json['origin'],'Origin',context!);
        placedAt = JsonConverters.fromJson(json['placedAt'],'DateTime',context!);
        bets = JsonConverters.fromJson(json['bets'],'List<Bet>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'slipId': slipId,
        'bettor': JsonConverters.toJson(bettor,'Reference',context!),
        'origin': JsonConverters.toJson(origin,'Origin',context!),
        'placedAt': JsonConverters.toJson(placedAt,'DateTime',context!),
        'bets': JsonConverters.toJson(bets,'List<Bet>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'grh1.api.bettor.webhop.biz', types: <String, TypeInfo> {
    'Reference': TypeInfo(TypeOf.Class, create:() => Reference()),
    'BettingApp': TypeInfo(TypeOf.Class, create:() => BettingApp()),
    'Origin': TypeInfo(TypeOf.Class, create:() => Origin()),
    'Bet': TypeInfo(TypeOf.Class, create:() => Bet()),
    'PlaceBets': TypeInfo(TypeOf.Class, create:() => PlaceBets()),
    'List<Bet>': TypeInfo(TypeOf.Class, create:() => <Bet>[]),
});

Dart PlaceBets DTOs

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

HTTP + XML

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

POST /bets/v2 HTTP/1.1 
Host: grh1.api.bettor.webhop.biz 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<PlaceBets xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Greyhounds.WebApi.ServiceModel">
  <Bets>
    <PlaceBets.Bet>
      <Id>String</Id>
      <JPId>String</JPId>
      <Odds>0</Odds>
      <OutcomeId>0</OutcomeId>
      <RoundId>String</RoundId>
      <Stake>0</Stake>
    </PlaceBets.Bet>
  </Bets>
  <Bettor>
    <Id>String</Id>
    <Value>String</Value>
  </Bettor>
  <Origin>
    <Application>
      <Name>String</Name>
      <Version>String</Version>
    </Application>
    <Clerk>
      <Id>String</Id>
      <Value>String</Value>
    </Clerk>
    <Device>
      <Id>String</Id>
      <Value>String</Value>
    </Device>
    <IP>String</IP>
    <Location>
      <Id>String</Id>
      <Value>String</Value>
    </Location>
    <LocationGroup>
      <Id>String</Id>
      <Value>String</Value>
    </LocationGroup>
    <Organization>
      <Id>String</Id>
      <Value>String</Value>
    </Organization>
  </Origin>
  <PlacedAt>0001-01-01T00:00:00</PlacedAt>
  <SlipId>String</SlipId>
</PlaceBets>
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>