Betting.WebApi

<back to all web services

FindSlips

The following routes are available for this service:
All Verbs/qry/slips
# frozen_string_literal: true
# encoding: utf-8


require 'json'
require 'servicestack'


module SlipFormat
    DEFAULT = 0
    WALLET_D_T_O = 1
end

class FindSlips
    include ServiceStack::DTO

    # @return [String]
    attr_accessor :id
    # @return [SlipFormat]
    attr_accessor :slip_format

    def self.properties
        {
            id: { name: 'id' },
            slip_format: { name: 'slipFormat' },
        }
    end

    def response_type() = PaginatedResult
    def get_type_name() = 'FindSlips'
end

class ResponseMetrics
    include ServiceStack::DTO

    # @return [Integer]
    attr_accessor :id
    # @return [Integer]
    attr_accessor :rqc
    # @return [Integer]
    attr_accessor :oc
    # @return [Integer]
    attr_accessor :sc
    # @return [Integer]
    attr_accessor :tc
    # @return [Integer]
    attr_accessor :adr

    def self.properties
        {
            id: { name: 'id' },
            rqc: { name: 'rqc' },
            oc: { name: 'oc' },
            sc: { name: 'sc' },
            tc: { name: 'tc' },
            adr: { name: 'adr' },
        }
    end

end

class PaginatedResult
    include ServiceStack::DTO

    # @return [List]
    attr_accessor :data
    # @return [Integer]
    attr_accessor :current_page
    # @return [Integer]
    attr_accessor :page_size
    # @return [Integer]
    attr_accessor :total_items
    # @return [Integer]
    attr_accessor :total_pages

    def self.properties
        {
            data: { name: 'data', type: [ResponseMetrics] },
            current_page: { name: 'currentPage' },
            page_size: { name: 'pageSize' },
            total_items: { name: 'totalItems' },
            total_pages: { name: 'totalPages' },
        }
    end

end

Ruby FindSlips 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/slips HTTP/1.1 
Host: api.bettor.webhop.biz 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

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

{
	data: 
	[
		{
			id: String,
			submittedAt: 0001-01-01,
			origin: 
			{
				application: 
				{
					name: String,
					version: String
				},
				ip: String,
				organization: 
				{
					data: 
					{
						String: String
					},
					id: String,
					val: String
				},
				region: 
				{
					id: String,
					val: String
				},
				locationGroup: 
				{
					id: String,
					val: String
				},
				location: 
				{
					data: 
					{
						String: String
					},
					id: String,
					val: String
				},
				device: 
				{
					data: 
					{
						String: String
					},
					id: String,
					val: String
				},
				clerk: 
				{
					id: String,
					val: String
				}
			},
			bettor: 
			{
				id: String,
				val: String
			},
			status: 0,
			version: 0,
			changedAt: 0001-01-01,
			submissionStatus: 0,
			headerData: 
			{
				String: String
			},
			bets: 
			[
				{
					betId: String,
					productInstance: 
					{
						id: String,
						name: String,
						title: String,
						product: 
						{
							id: String,
							value: String,
							category: String,
							productProvider: 
							{
								id: String,
								val: String
							}
						}
					},
					status: 0,
					placementStatus: 0,
					processingStatus: 0,
					validity: 0,
					payoutStatus: 0,
					payload: 
					{
						String: String
					},
					outcome: 0,
					payinRecap: 
					{
						currency: String,
						payin: 0,
						payinTaxationPolicyRef: 
						{
							id: String,
							val: String
						},
						taxAmount: 0,
						stake: 0
					},
					possiblePayoutRecap: 
					{
						currency: String,
						winnings: 0,
						winningsTaxationPolicyRef: 
						{
							id: String,
							val: String
						},
						taxAmount: 0,
						payout: 0
					},
					actualPayoutRecap: 
					{
						currency: String,
						winnings: 0,
						winningsTaxationPolicyRef: 
						{
							id: String,
							val: String
						},
						taxAmount: 0,
						payout: 0
					},
					payoutInfo: 
					{
						origin: 
						{
							application: 
							{
								name: String,
								version: String
							},
							ip: String,
							organization: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							region: 
							{
								id: String,
								val: String
							},
							locationGroup: 
							{
								id: String,
								val: String
							},
							location: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							device: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							clerk: 
							{
								id: String,
								val: String
							}
						},
						performedAt: 0001-01-01
					},
					cancellationInfo: 
					{
						origin: 
						{
							application: 
							{
								name: String,
								version: String
							},
							ip: String,
							organization: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							region: 
							{
								id: String,
								val: String
							},
							locationGroup: 
							{
								id: String,
								val: String
							},
							location: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							device: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							clerk: 
							{
								id: String,
								val: String
							}
						},
						performedAt: 0001-01-01
					},
					reversionInfo: 
					{
						origin: 
						{
							application: 
							{
								name: String,
								version: String
							},
							ip: String,
							organization: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							region: 
							{
								id: String,
								val: String
							},
							locationGroup: 
							{
								id: String,
								val: String
							},
							location: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							device: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							clerk: 
							{
								id: String,
								val: String
							}
						},
						performedAt: 0001-01-01
					},
					expirationInfo: 
					{
						origin: 
						{
							application: 
							{
								name: String,
								version: String
							},
							ip: String,
							organization: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							region: 
							{
								id: String,
								val: String
							},
							locationGroup: 
							{
								id: String,
								val: String
							},
							location: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							device: 
							{
								data: 
								{
									String: String
								},
								id: String,
								val: String
							},
							clerk: 
							{
								id: String,
								val: String
							}
						},
						performedAt: 0001-01-01
					}
				}
			],
			totalPayin: 0,
			betCount: 0,
			winningsRecap: 
			{
				winningsAmount: 0,
				winningsTaxAmount: 0,
				pendingPayoutAmount: 0,
				paidOutAmount: 0,
				expiredAmount: 0,
				isLost: True
			},
			walletFlow: 0,
			integrationInstance: 
			{
				id: String,
				val: String
			}
		}
	],
	currentPage: 0,
	pageSize: 0,
	totalItems: 0,
	totalPages: 0
}