Betting.WebApi

<back to all web services

RegisterUserAccount

Requires Authentication
The following routes are available for this service:
POST/cmd/users/register
"use strict";
export class LoginCredentials {
    /** @param {{username?:string,password?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    username;
    /** @type {string} */
    password;
}
export class Name {
    /** @param {{first?:string,last?:string,full?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    first;
    /** @type {string} */
    last;
    /** @type {string} */
    full;
}
export class Ref {
    /** @param {{id?:string,val?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    id;
    /** @type {string} */
    val;
}
export class GPSCoordinates {
    /** @param {{lat?:number,lng?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    lat;
    /** @type {number} */
    lng;
}
export class Address {
    /** @param {{street?:string,city?:string,state?:string,postalCode?:string,country?:Ref,gps?:GPSCoordinates,data?:RecordDictionary<string, string>}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    street;
    /** @type {string} */
    city;
    /** @type {string} */
    state;
    /** @type {string} */
    postalCode;
    /** @type {Ref} */
    country;
    /** @type {GPSCoordinates} */
    gps;
    /** @type {RecordDictionary<string, string>} */
    data;
}
export class ContactInfo {
    /** @param {{phone?:string,email?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    phone;
    /** @type {string} */
    email;
}
export class Person {
    /** @param {{name?:Name,address?:Address,dateOfBirth?:string,contactInfo?:ContactInfo}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {Name} */
    name;
    /** @type {Address} */
    address;
    /** @type {?string} */
    dateOfBirth;
    /** @type {ContactInfo} */
    contactInfo;
}
export class AvatarImage {
    /** @param {{base64?:string,tag?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    base64;
    /** @type {string} */
    tag;
}
export class NewUserDTO {
    /** @param {{externalUserId?:string,credentials?:LoginCredentials,person?:Person,roles?:RecordList<string>,avatar?:AvatarImage}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    externalUserId;
    /** @type {LoginCredentials} */
    credentials;
    /** @type {Person} */
    person;
    /** @type {RecordList<string>} */
    roles;
    /** @type {AvatarImage} */
    avatar;
}
export class RegisterUserAccount {
    /** @param {{id?:string,newUserDTO?:NewUserDTO}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    id;
    /** @type {NewUserDTO} */
    newUserDTO;
}
class Dictionary {}
/** @typedef TKey {any} */
/** @typedef  TVal {any} */
export class RecordDictionary extends Dictionary {
    constructor(init) { super(init); Object.assign(this, init) }
}
/** @typedef T {any} */
export class RecordList extends Array {
    constructor(init) { super(init); Object.assign(this, init) }
}

JavaScript RegisterUserAccount DTOs

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

HTTP + JSV

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: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	newUserDTO: 
	{
		externalUserId: String,
		credentials: 
		{
			username: String,
			password: String
		},
		person: 
		{
			name: 
			{
				first: String,
				last: String,
				full: String String
			},
			address: 
			{
				street: String,
				city: String,
				state: String,
				postalCode: String,
				country: 
				{
					id: String,
					val: String
				},
				gps: 
				{
					lat: 0,
					lng: 0
				},
				data: 
				{
					String: String
				}
			},
			dateOfBirth: 0001-01-01,
			contactInfo: 
			{
				phone: String,
				email: String
			}
		},
		roles: 
		[
			String
		],
		avatar: 
		{
			base64: String,
			tag: String
		}
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

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