| All Verbs | /qry/config/game |
|---|
#![allow(
dead_code,
non_camel_case_types,
non_snake_case,
clippy::upper_case_acronyms
)]
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct CountdownConfiguration {
#[serde(rename = "lockdownStepFromEnd")]
pub lockdown_step_from_end: i32,
#[serde(rename = "assertLockdownStepFromEnd")]
pub assert_lockdown_step_from_end: i32,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct DrawConfiguration {
#[serde(rename = "introIntervalInMs")]
pub intro_interval_in_ms: i32,
#[serde(rename = "animationIntervalInMs")]
pub animation_interval_in_ms: i32,
#[serde(rename = "outroIntervalInMs")]
pub outro_interval_in_ms: i32,
}
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
#[repr(i32)]
pub enum RTPStrategies {
#[default]
RNG = 0,
Accumulator = 1,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct HappyHourConfiguration {
#[serde(rename = "isHappyHour")]
pub is_happy_hour: bool,
#[serde(rename = "oddsModifier")]
pub odds_modifier: f64,
#[serde(rename = "roundPoolBonusPct")]
pub round_pool_bonus_pct: f64,
#[serde(rename = "useOnlyRoundPoolWithNoOptimizations")]
pub use_only_round_pool_with_no_optimizations: bool,
#[serde(rename = "overrideSyphonCombinationCountPerRoundThreshold")]
pub override_syphon_combination_count_per_round_threshold: bool,
#[serde(rename = "syphonCombinationCountPerRoundThresholdPctOverride")]
pub syphon_combination_count_per_round_threshold_pct_override: f64,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct RoundConfiguration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub coefficients: Option<RecordList>,
#[serde(rename = "isDoubleTripleActive")]
pub is_double_triple_active: bool,
#[serde(rename = "isJackpot5Active")]
pub is_jackpot5_active: bool,
#[serde(rename = "countdownDurationInSeconds")]
pub countdown_duration_in_seconds: i32,
#[serde(rename = "countdownConfiguration")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub countdown_configuration: Option<CountdownConfiguration>,
#[serde(rename = "drawConfiguration")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub draw_configuration: Option<DrawConfiguration>,
#[serde(rename = "resultsDurationInSeconds")]
pub results_duration_in_seconds: i32,
#[serde(rename = "rtpStrategy")]
pub rtp_strategy: RTPStrategies,
#[serde(rename = "happyHourConfiguration")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub happy_hour_configuration: Option<HappyHourConfiguration>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct TimePoint {
pub hour: i32,
pub minute: i32,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct TimeInterval {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<TimePoint>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end: Option<TimePoint>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct HappyHourItem {
pub id: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interval: Option<TimeInterval>,
#[serde(rename = "oddsModifier")]
pub odds_modifier: f64,
#[serde(rename = "roundPoolBonusPct")]
pub round_pool_bonus_pct: f64,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct HappyHourConfig {
#[serde(rename = "isActive")]
pub is_active: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<HappyHourItem>>,
#[serde(rename = "useOnlyRoundPoolWithNoOptimizations")]
pub use_only_round_pool_with_no_optimizations: bool,
#[serde(rename = "overrideSyphonCombinationCountPerRoundThreshold")]
pub override_syphon_combination_count_per_round_threshold: bool,
#[serde(rename = "syphonCombinationCountPerRoundThresholdPctOverride")]
pub syphon_combination_count_per_round_threshold_pct_override: f64,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct GameConfiguration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "queueSize")]
pub queue_size: i32,
#[serde(rename = "roundConfiguration")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub round_configuration: Option<RoundConfiguration>,
#[serde(rename = "happyHourConfig")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub happy_hour_config: Option<HappyHourConfig>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct GetGameConfig {
#[serde(rename = "locationId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location_id: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct RecordList(pub Vec<T>);
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /qry/config/game HTTP/1.1
Host: s4w1.api.bettor.webhop.biz
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<GetGameConfig xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Six4Win.WebApi.ServiceModel">
<LocationId>String</LocationId>
</GetGameConfig>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<GameConfiguration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Six4Win.ReadModel">
<HappyHourConfig xmlns:d2p1="http://schemas.datacontract.org/2004/07/Six4Win">
<d2p1:IsActive>false</d2p1:IsActive>
<d2p1:Items>
<d2p1:HappyHourConfig.HappyHourItem>
<d2p1:Id>0</d2p1:Id>
<d2p1:Interval>
<d2p1:End>
<d2p1:Hour>0</d2p1:Hour>
<d2p1:Minute>0</d2p1:Minute>
</d2p1:End>
<d2p1:Start>
<d2p1:Hour>0</d2p1:Hour>
<d2p1:Minute>0</d2p1:Minute>
</d2p1:Start>
</d2p1:Interval>
<d2p1:OddsModifier>0</d2p1:OddsModifier>
<d2p1:RoundPoolBonusPct>0</d2p1:RoundPoolBonusPct>
</d2p1:HappyHourConfig.HappyHourItem>
</d2p1:Items>
<d2p1:OverrideSyphonCombinationCountPerRoundThreshold>false</d2p1:OverrideSyphonCombinationCountPerRoundThreshold>
<d2p1:SyphonCombinationCountPerRoundThresholdPctOverride>0</d2p1:SyphonCombinationCountPerRoundThresholdPctOverride>
<d2p1:UseOnlyRoundPoolWithNoOptimizations>false</d2p1:UseOnlyRoundPoolWithNoOptimizations>
</HappyHourConfig>
<Id>String</Id>
<QueueSize>0</QueueSize>
<RoundConfiguration xmlns:d2p1="http://schemas.datacontract.org/2004/07/Six4Win">
<d2p1:Coefficients xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:float>0</d3p1:float>
</d2p1:Coefficients>
<d2p1:CountdownConfiguration>
<d2p1:AssertLockdownStepFromEnd>0</d2p1:AssertLockdownStepFromEnd>
<d2p1:LockdownStepFromEnd>0</d2p1:LockdownStepFromEnd>
</d2p1:CountdownConfiguration>
<d2p1:CountdownDurationInSeconds>0</d2p1:CountdownDurationInSeconds>
<d2p1:DrawConfiguration>
<d2p1:AnimationIntervalInMs>0</d2p1:AnimationIntervalInMs>
<d2p1:IntroIntervalInMs>0</d2p1:IntroIntervalInMs>
<d2p1:OutroIntervalInMs>0</d2p1:OutroIntervalInMs>
</d2p1:DrawConfiguration>
<d2p1:HappyHourConfiguration>
<d2p1:IsHappyHour>false</d2p1:IsHappyHour>
<d2p1:OddsModifier>0</d2p1:OddsModifier>
<d2p1:OverrideSyphonCombinationCountPerRoundThreshold>false</d2p1:OverrideSyphonCombinationCountPerRoundThreshold>
<d2p1:RoundPoolBonusPct>0</d2p1:RoundPoolBonusPct>
<d2p1:SyphonCombinationCountPerRoundThresholdPctOverride>0</d2p1:SyphonCombinationCountPerRoundThresholdPctOverride>
<d2p1:UseOnlyRoundPoolWithNoOptimizations>false</d2p1:UseOnlyRoundPoolWithNoOptimizations>
</d2p1:HappyHourConfiguration>
<d2p1:IsDoubleTripleActive>false</d2p1:IsDoubleTripleActive>
<d2p1:IsJackpot5Active>false</d2p1:IsJackpot5Active>
<d2p1:RTPStrategy>RNG</d2p1:RTPStrategy>
<d2p1:ResultsDurationInSeconds>0</d2p1:ResultsDurationInSeconds>
</RoundConfiguration>
</GameConfiguration>