Betting.WebApi

<back to all web services

RegisterUserAccount

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

class LoginCredentials implements IConvertible
{
    String? username;
    String? password;

    LoginCredentials({this.username,this.password});
    LoginCredentials.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'username': username,
        'password': password
    };

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

class Name implements IConvertible
{
    String? first;
    String? last;
    String? full;

    Name({this.first,this.last,this.full});
    Name.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        first = json['first'];
        last = json['last'];
        full = json['full'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'first': first,
        'last': last,
        'full': full
    };

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

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 GPSCoordinates implements IConvertible
{
    double? lat;
    double? lng;

    GPSCoordinates({this.lat,this.lng});
    GPSCoordinates.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        lat = JsonConverters.toDouble(json['lat']);
        lng = JsonConverters.toDouble(json['lng']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'lat': lat,
        'lng': lng
    };

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

class Address implements IConvertible
{
    String? street;
    String? city;
    String? state;
    String? postalCode;
    Ref? country;
    GPSCoordinates? gps;
    RecordDictionary<String,String>? data;

    Address({this.street,this.city,this.state,this.postalCode,this.country,this.gps,this.data});
    Address.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        street = json['street'];
        city = json['city'];
        state = json['state'];
        postalCode = json['postalCode'];
        country = JsonConverters.fromJson(json['country'],'Ref',context!);
        gps = JsonConverters.fromJson(json['gps'],'GPSCoordinates',context!);
        data = JsonConverters.fromJson(json['data'],'RecordDictionary<String,String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'street': street,
        'city': city,
        'state': state,
        'postalCode': postalCode,
        'country': JsonConverters.toJson(country,'Ref',context!),
        'gps': JsonConverters.toJson(gps,'GPSCoordinates',context!),
        'data': JsonConverters.toJson(data,'RecordDictionary<String,String>',context!)
    };

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

class ContactInfo implements IConvertible
{
    String? phone;
    String? email;

    ContactInfo({this.phone,this.email});
    ContactInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'phone': phone,
        'email': email
    };

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

class Person implements IConvertible
{
    Name? name;
    Address? address;
    DateTime? dateOfBirth;
    ContactInfo? contactInfo;

    Person({this.name,this.address,this.dateOfBirth,this.contactInfo});
    Person.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        name = JsonConverters.fromJson(json['name'],'Name',context!);
        address = JsonConverters.fromJson(json['address'],'Address',context!);
        dateOfBirth = JsonConverters.fromJson(json['dateOfBirth'],'DateTime',context!);
        contactInfo = JsonConverters.fromJson(json['contactInfo'],'ContactInfo',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'name': JsonConverters.toJson(name,'Name',context!),
        'address': JsonConverters.toJson(address,'Address',context!),
        'dateOfBirth': JsonConverters.toJson(dateOfBirth,'DateTime',context!),
        'contactInfo': JsonConverters.toJson(contactInfo,'ContactInfo',context!)
    };

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

class AvatarImage implements IConvertible
{
    String? base64;
    String? tag;

    AvatarImage({this.base64,this.tag});
    AvatarImage.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'base64': base64,
        'tag': tag
    };

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

class NewUserDTO implements IConvertible
{
    String? externalUserId;
    LoginCredentials? credentials;
    Person? person;
    RecordList<String>? roles;
    AvatarImage? avatar;

    NewUserDTO({this.externalUserId,this.credentials,this.person,this.roles,this.avatar});
    NewUserDTO.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        externalUserId = json['externalUserId'];
        credentials = JsonConverters.fromJson(json['credentials'],'LoginCredentials',context!);
        person = JsonConverters.fromJson(json['person'],'Person',context!);
        roles = JsonConverters.fromJson(json['roles'],'RecordList<String>',context!);
        avatar = JsonConverters.fromJson(json['avatar'],'AvatarImage',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'externalUserId': externalUserId,
        'credentials': JsonConverters.toJson(credentials,'LoginCredentials',context!),
        'person': JsonConverters.toJson(person,'Person',context!),
        'roles': JsonConverters.toJson(roles,'RecordList<String>',context!),
        'avatar': JsonConverters.toJson(avatar,'AvatarImage',context!)
    };

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

class RegisterUserAccount implements IConvertible
{
    String? id;
    NewUserDTO? newUserDTO;

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

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

    Map<String, dynamic> toJson() => {
        'id': id,
        'newUserDTO': JsonConverters.toJson(newUserDTO,'NewUserDTO',context!)
    };

    getTypeName() => "RegisterUserAccount";
    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;
}

class RecordList<T> extends ListBase<T> implements IConvertible
{
    final List<T> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    T operator [](int index) => l[index];
    void operator []=(int index, T value) { l[index] = value; }
    RecordList();
    RecordList.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "RecordList<$T>";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.sbbet.ath.cx', types: <String, TypeInfo> {
    'LoginCredentials': TypeInfo(TypeOf.Class, create:() => LoginCredentials()),
    'Name': TypeInfo(TypeOf.Class, create:() => Name()),
    'Ref': TypeInfo(TypeOf.Class, create:() => Ref()),
    'GPSCoordinates': TypeInfo(TypeOf.Class, create:() => GPSCoordinates()),
    'Address': TypeInfo(TypeOf.Class, create:() => Address()),
    'RecordDictionary<String,String>': TypeInfo(TypeOf.Class, create:() => RecordDictionary<String,String>()),
    'ContactInfo': TypeInfo(TypeOf.Class, create:() => ContactInfo()),
    'Person': TypeInfo(TypeOf.Class, create:() => Person()),
    'AvatarImage': TypeInfo(TypeOf.Class, create:() => AvatarImage()),
    'NewUserDTO': TypeInfo(TypeOf.Class, create:() => NewUserDTO()),
    'RecordList<String>': TypeInfo(TypeOf.Class, create:() => RecordList<String>()),
    'RegisterUserAccount': TypeInfo(TypeOf.Class, create:() => RegisterUserAccount()),
    'RecordDictionary<TKey,TVal>': TypeInfo(TypeOf.GenericDef,create:() => RecordDictionary()),
    'RecordList<T>': TypeInfo(TypeOf.GenericDef,create:() => RecordList()),
});

Dart RegisterUserAccount 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 /cmd/users/register HTTP/1.1 
Host: api.sbbet.ath.cx 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<RegisterUserAccount xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Betting.WebApi.ServiceModel">
  <Id>String</Id>
  <NewUserDTO xmlns:d2p1="http://schemas.datacontract.org/2004/07/Betting.Common">
    <d2p1:Avatar>
      <d2p1:Base64>String</d2p1:Base64>
      <d2p1:Tag>String</d2p1:Tag>
    </d2p1:Avatar>
    <d2p1:Credentials>
      <d2p1:Password>String</d2p1:Password>
      <d2p1:Username>String</d2p1:Username>
    </d2p1:Credentials>
    <d2p1:ExternalUserId>String</d2p1:ExternalUserId>
    <d2p1:Person>
      <d2p1:Address xmlns:d4p1="http://schemas.datacontract.org/2004/07/Starnet.Common">
        <d4p1:City>String</d4p1:City>
        <d4p1:Country>
          <d4p1:_x003C_Id_x003E_k__BackingField>String</d4p1:_x003C_Id_x003E_k__BackingField>
          <d4p1:_x003C_Val_x003E_k__BackingField>String</d4p1:_x003C_Val_x003E_k__BackingField>
        </d4p1:Country>
        <d4p1:Data xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d4p1:Data>
        <d4p1:GPS>
          <d4p1:Lat>0</d4p1:Lat>
          <d4p1:Lng>0</d4p1:Lng>
        </d4p1:GPS>
        <d4p1:PostalCode>String</d4p1:PostalCode>
        <d4p1:State>String</d4p1:State>
        <d4p1:Street>String</d4p1:Street>
      </d2p1:Address>
      <d2p1:ContactInfo>
        <d2p1:Email>String</d2p1:Email>
        <d2p1:Phone>String</d2p1:Phone>
      </d2p1:ContactInfo>
      <d2p1:DateOfBirth>0001-01-01T00:00:00</d2p1:DateOfBirth>
      <d2p1:Name>
        <d2p1:First>String</d2p1:First>
        <d2p1:Last>String</d2p1:Last>
      </d2p1:Name>
    </d2p1:Person>
    <d2p1:Roles xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </d2p1:Roles>
  </NewUserDTO>
</RegisterUserAccount>
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>