Betting.WebApi

<back to all web services

SetBettingPoliciesConfig

Requires Authentication
The following routes are available for this service:
POST/cmd/bettingPolicies/config
# frozen_string_literal: true
# encoding: utf-8


require 'json'
require 'servicestack'


module PayinConstraintType
    SINGLE_BET = 0
    MULTI_BET = 1
    SYSTEM_BET = 2
end

module WinningsCapType
    SINGLE_BET = 0
    MULTI_BET = 1
    SYSTEM_BET = 2
end

class Money
    include ServiceStack::DTO

    # @return [BigDecimal]
    attr_accessor :amount
    # @return [String]
    attr_accessor :currency

    def self.properties
        {
            amount: { name: 'amount' },
            currency: { name: 'currency' },
        }
    end

end

class PayinConstraint
    include ServiceStack::DTO

    # @return [PayinConstraintType]
    attr_accessor :type
    # @return [Money]
    attr_accessor :min
    # @return [Money]
    attr_accessor :default
    # @return [Money]
    attr_accessor :warning_threshold
    # @return [Money]
    attr_accessor :max

    def self.properties
        {
            type: { name: 'type' },
            min: { name: 'min', type: Money },
            default: { name: 'default', type: Money },
            warning_threshold: { name: 'warningThreshold', type: Money },
            max: { name: 'max', type: Money },
        }
    end

end

class WinningsCap
    include ServiceStack::DTO

    # @return [WinningsCapType]
    attr_accessor :type
    # @return [Money]
    attr_accessor :cap

    def self.properties
        {
            type: { name: 'type' },
            cap: { name: 'cap', type: Money },
        }
    end

end

class BettingPolicies
    include ServiceStack::DTO

    # @return [RecordList]
    attr_accessor :payin_constraints
    # @return [String]
    attr_accessor :payin_taxation_policy_id
    # @return [RecordList]
    attr_accessor :winnings_caps
    # @return [String]
    attr_accessor :winnings_taxation_policy_id

    def self.properties
        {
            payin_constraints: { name: 'payinConstraints', type: RecordList },
            payin_taxation_policy_id: { name: 'payinTaxationPolicyId' },
            winnings_caps: { name: 'winningsCaps', type: RecordList },
            winnings_taxation_policy_id: { name: 'winningsTaxationPolicyId' },
        }
    end

end

class Ref
    include ServiceStack::DTO

    # @return [String]
    attr_accessor :id
    # @return [String]
    attr_accessor :val

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

end

class SetBettingPoliciesConfig
    include ServiceStack::DTO

    # @return [String]
    attr_accessor :id
    # @return [BettingPolicies]
    attr_accessor :policies
    # @return [Ref]
    attr_accessor :product_instance_ref
    # @return [Ref]
    attr_accessor :owner_ref
    # @return [TrueClass]
    attr_accessor :is_active

    def self.properties
        {
            id: { name: 'id' },
            policies: { name: 'policies', type: BettingPolicies },
            product_instance_ref: { name: 'productInstanceRef', type: Ref },
            owner_ref: { name: 'ownerRef', type: Ref },
            is_active: { name: 'isActive' },
        }
    end

    def response_type() = ServiceStack::ResponseStatus
    def get_type_name() = 'SetBettingPoliciesConfig'
end

class RecordList < Array
end

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

{
	id: String,
	policies: 
	{
		payinConstraints: 
		[
			{
				type: 0,
				min: 
				{
					amount: 0,
					currency: String
				},
				default: 
				{
					amount: 0,
					currency: String
				},
				warningThreshold: 
				{
					amount: 0,
					currency: String
				},
				max: 
				{
					amount: 0,
					currency: String
				}
			}
		],
		payinTaxationPolicyId: String,
		winningsCaps: 
		[
			{
				type: 0,
				cap: 
				{
					amount: 0,
					currency: String
				}
			}
		],
		winningsTaxationPolicyId: String
	},
	productInstanceRef: 
	{
		id: String,
		val: String
	},
	ownerRef: 
	{
		id: String,
		val: String
	},
	isActive: False
}
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
	}
}