| POST | /cmd/configure/game |
|---|
const std = @import("std");
pub const CountdownConfiguration = struct {
lockdownStepFromEnd: i32 = 0,
assertLockdownStepFromEnd: i32 = 0,
};
pub const DrawConfiguration = struct {
introIntervalInMs: i32 = 0,
animationIntervalInMs: i32 = 0,
outroIntervalInMs: i32 = 0,
};
pub const RTPStrategies = enum(i32) {
RNG = 0,
Accumulator = 1,
};
pub const HappyHourConfiguration = struct {
isHappyHour: bool = false,
oddsModifier: f64 = 0,
roundPoolBonusPct: f64 = 0,
useOnlyRoundPoolWithNoOptimizations: bool = false,
overrideSyphonCombinationCountPerRoundThreshold: bool = false,
syphonCombinationCountPerRoundThresholdPctOverride: f64 = 0,
};
pub const RoundConfiguration = struct {
coefficients: ?RecordList = null,
isDoubleTripleActive: bool = false,
isJackpot5Active: bool = false,
countdownDurationInSeconds: i32 = 0,
countdownConfiguration: ?CountdownConfiguration = null,
drawConfiguration: ?DrawConfiguration = null,
resultsDurationInSeconds: i32 = 0,
rtpStrategy: ?RTPStrategies = null,
happyHourConfiguration: ?HappyHourConfiguration = null,
};
pub const TimePoint = struct {
hour: i32 = 0,
minute: i32 = 0,
};
pub const TimeInterval = struct {
start: ?TimePoint = null,
end: ?TimePoint = null,
};
pub const HappyHourItem = struct {
id: i64 = 0,
interval: ?TimeInterval = null,
oddsModifier: f64 = 0,
roundPoolBonusPct: f64 = 0,
};
pub const HappyHourConfig = struct {
isActive: bool = false,
items: ?[]HappyHourItem = null,
useOnlyRoundPoolWithNoOptimizations: bool = false,
overrideSyphonCombinationCountPerRoundThreshold: bool = false,
syphonCombinationCountPerRoundThresholdPctOverride: f64 = 0,
};
pub const GameConfiguration = struct {
id: ?[]const u8 = null,
queueSize: i32 = 0,
roundConfiguration: ?RoundConfiguration = null,
happyHourConfig: ?HappyHourConfig = null,
};
pub const ConfigureGame = struct {
id: ?[]const u8 = null,
configuration: ?GameConfiguration = null,
};
pub fn RecordList(comptime T: type) type {
_ = T;
return struct {
pub const ss_collection = "items";
items: []T = &.{},
};
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /cmd/configure/game HTTP/1.1
Host: s4w1.api.bettor.webhop.biz
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
id: String,
configuration:
{
queueSize: 0,
roundConfiguration:
{
coefficients:
[
0
],
isDoubleTripleActive: False,
isJackpot5Active: False,
countdownDurationInSeconds: 0,
countdownConfiguration:
{
lockdownStepFromEnd: 0,
assertLockdownStepFromEnd: 0
},
drawConfiguration:
{
introIntervalInMs: 0,
animationIntervalInMs: 0,
outroIntervalInMs: 0
},
resultsDurationInSeconds: 0,
rtpStrategy: 0,
happyHourConfiguration:
{
isHappyHour: False,
oddsModifier: 0,
roundPoolBonusPct: 0,
useOnlyRoundPoolWithNoOptimizations: False,
overrideSyphonCombinationCountPerRoundThreshold: False,
syphonCombinationCountPerRoundThresholdPctOverride: 0
}
},
happyHourConfig:
{
isActive: False,
items:
[
{
id: 0,
interval:
{
start:
{
hour: 0,
minute: 0
},
end:
{
hour: 0,
minute: 0
}
},
oddsModifier: 0,
roundPoolBonusPct: 0
}
],
useOnlyRoundPoolWithNoOptimizations: False,
overrideSyphonCombinationCountPerRoundThreshold: False,
syphonCombinationCountPerRoundThresholdPctOverride: 0
}
}
}
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
}
}