Betting.WebApi

<back to all web services

NotifyFrontend

The following routes are available for this service:
All Verbs/cmd/notify/frontend/
package dtos

type BettingApp struct {
	Name    *string `json:"name,omitempty"`
	Version *string `json:"version,omitempty"`
}

type Ref struct {
	Id  string `json:"id"`
	Val string `json:"val"`
}

type RefEx struct {
	Ref
	Data RecordDictionary[string, string] `json:"data"`
}

type Origin struct {
	Application   *BettingApp `json:"application,omitempty"`
	Ip            *string     `json:"ip,omitempty"`
	Organization  *RefEx      `json:"organization,omitempty"`
	Region        *Ref        `json:"region,omitempty"`
	LocationGroup *Ref        `json:"locationGroup,omitempty"`
	Location      *RefEx      `json:"location,omitempty"`
	Device        *RefEx      `json:"device,omitempty"`
	Clerk         *Ref        `json:"clerk,omitempty"`
}

type SlipSubmissionStatus int

const (
	SlipSubmissionStatusPending  SlipSubmissionStatus = 0
	SlipSubmissionStatusAccepted SlipSubmissionStatus = 2
	SlipSubmissionStatusRejected SlipSubmissionStatus = 3
	SlipSubmissionStatusFailed   SlipSubmissionStatus = 4
)

type AcceptedSlipInfo struct {
	Id                   *string                           `json:"id,omitempty"`
	Origin               *Origin                           `json:"origin,omitempty"`
	Bettor               *Ref                              `json:"bettor,omitempty"`
	SlipSubmissionStatus SlipSubmissionStatus              `json:"slipSubmissionStatus,omitempty"`
	Payload              *RecordDictionary[string, string] `json:"payload,omitempty"`
}

type ErrorInfo struct {
	Origin           *Origin           `json:"origin,omitempty"`
	ErrorCode        *string           `json:"errorCode,omitempty"`
	ErrorDescription *string           `json:"errorDescription,omitempty"`
	Payload          map[string]string `json:"payload,omitempty"`
}

type ConfirmationInfo struct {
	Bettor                  *Ref              `json:"bettor,omitempty"`
	Origin                  *Origin           `json:"origin,omitempty"`
	ConfirmationCode        *string           `json:"confirmationCode,omitempty"`
	ConfirmationDescription *string           `json:"confirmationDescription,omitempty"`
	Payload                 map[string]string `json:"payload,omitempty"`
}

type WalletTransactionInfo struct {
	Reason *string `json:"reason,omitempty"`
}

type WalletUpdateInfo struct {
	Bettor          *Ref                   `json:"bettor,omitempty"`
	Origin          *Origin                `json:"origin,omitempty"`
	TransactionInfo *WalletTransactionInfo `json:"transactionInfo,omitempty"`
}

type UserNotificationsUpdatedInfo struct {
	Id *string `json:"id,omitempty"`
}

type ApplicationEventsUpdated struct {
}

type SlipDeliveryIssueRefundRequestUpdated struct {
}

type NotifyFrontend struct {
	AcceptedSlipInfo                      *AcceptedSlipInfo                      `json:"acceptedSlipInfo,omitempty"`
	ErrorInfo                             *ErrorInfo                             `json:"errorInfo,omitempty"`
	ConfirmationInfo                      *ConfirmationInfo                      `json:"confirmationInfo,omitempty"`
	SlipCancellationId                    *string                                `json:"slipCancellationId,omitempty"`
	WalletUpdatedInfo                     *WalletUpdateInfo                      `json:"walletUpdatedInfo,omitempty"`
	UserNotificationsUpdated              *UserNotificationsUpdatedInfo          `json:"userNotificationsUpdated,omitempty"`
	ApplicationEventsUpdated              *ApplicationEventsUpdated              `json:"applicationEventsUpdated,omitempty"`
	SlipDeliveryIssueRefundRequestUpdated *SlipDeliveryIssueRefundRequestUpdated `json:"slipDeliveryIssueRefundRequestUpdated,omitempty"`
}

type RecordDictionary[TKey any, TVal any] map[TKey]TVal

Go NotifyFrontend 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/notify/frontend/ HTTP/1.1 
Host: api.bettor.webhop.biz 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	acceptedSlipInfo: 
	{
		id: String,
		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
		},
		slipSubmissionStatus: 0,
		payload: 
		{
			String: String
		}
	},
	errorInfo: 
	{
		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
			}
		},
		errorCode: String,
		errorDescription: String,
		payload: 
		{
			String: String
		}
	},
	confirmationInfo: 
	{
		bettor: 
		{
			id: String,
			val: String
		},
		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
			}
		},
		confirmationCode: String,
		confirmationDescription: String,
		payload: 
		{
			String: String
		}
	},
	slipCancellationId: String,
	walletUpdatedInfo: 
	{
		bettor: 
		{
			id: String,
			val: String
		},
		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
			}
		},
		transactionInfo: 
		{
			reason: String
		}
	},
	userNotificationsUpdated: 
	{
		id: String
	},
	applicationEventsUpdated: {},
	slipDeliveryIssueRefundRequestUpdated: {}
}
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
	}
}