Betting.WebApi

<back to all web services

CreateCashbookEntry

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


require 'json'
require 'servicestack'


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 CreateCashbookEntry
    include ServiceStack::DTO

    # @return [String]
    attr_accessor :id
    # @return [String]
    attr_accessor :location_id
    # @return [DateTime]
    attr_accessor :charged_at
    # @return [Money]
    attr_accessor :amount
    # @return [String]
    attr_accessor :description

    def self.properties
        {
            id: { name: 'id' },
            location_id: { name: 'locationId' },
            charged_at: { name: 'chargedAt', type: DateTime },
            amount: { name: 'amount', type: Money },
            description: { name: 'description' },
        }
    end

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

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

{
	id: String,
	locationId: String,
	chargedAt: 0001-01-01,
	amount: 
	{
		amount: 0,
		currency: String
	},
	description: 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
	}
}