Betting.WebApi

<back to all web services

GetUserProfile

Requires Authentication
The following routes are available for this service:
All Verbs/qry/users/profile
const std = @import("std");

pub const Name = struct {
    first: ?[]const u8 = null,
    last: ?[]const u8 = null,
    full: ?[]const u8 = null,
};

pub const Ref = struct {
    id: ?[]const u8 = null,
    val: ?[]const u8 = null,
};

pub const GPSCoordinates = struct {
    lat: f64 = 0,
    lng: f64 = 0,
};

pub const Address = struct {
    street: ?[]const u8 = null,
    city: ?[]const u8 = null,
    state: ?[]const u8 = null,
    postalCode: ?[]const u8 = null,
    country: ?Ref = null,
    gps: ?GPSCoordinates = null,
    data: ?RecordDictionary = null,
};

pub const ContactInfo = struct {
    phone: ?[]const u8 = null,
    email: ?[]const u8 = null,
};

pub const Person = struct {
    name: ?Name = null,
    address: ?Address = null,
    dateOfBirth: ?[]const u8 = null,
    contactInfo: ?ContactInfo = null,
};

pub const BettorWalletProfile = struct {
    id: ?[]const u8 = null,
    username: ?[]const u8 = null,
    person: ?Person = null,
    data: ?RecordDictionary = null,
};

pub const GetUserProfile = struct {
    id: ?[]const u8 = null,
};

pub fn RecordDictionary(comptime TKey: type, comptime TVal: type) type {
    _ = TKey;
    _ = TVal;
    return struct {};
}

Zig GetUserProfile 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 /qry/users/profile HTTP/1.1 
Host: api.bettor.webhop.biz 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	username: 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
		}
	},
	data: 
	{
		String: String
	}
}