summaryrefslogtreecommitdiffstats
path: root/src/client/games/response.rs
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-01 16:17:19 +0100
committersalmonik <salmonik@tuta.io>2026-11-01 16:17:19 +0100
commitf07221b4e1d8aa464a44fe566884ccc0565406e9 (patch)
tree48020a68cee1c95521d594dc6803c1f7ec01c801 /src/client/games/response.rs
parentadd nginx + php-fpm deployment example (diff)
downloadzagan-bet-f07221b4e1d8aa464a44fe566884ccc0565406e9.tar.gz
zagan-bet-f07221b4e1d8aa464a44fe566884ccc0565406e9.zip
v3.2.0: straight and split bets anywhere on the felt; add history command
Diffstat (limited to 'src/client/games/response.rs')
-rw-r--r--src/client/games/response.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/client/games/response.rs b/src/client/games/response.rs
index 88df459..060ad44 100644
--- a/src/client/games/response.rs
+++ b/src/client/games/response.rs
@@ -184,3 +184,23 @@ pub fn parse_crash_response(response: &str) -> Result<crate::crash::CrashState,
184 .ok_or_else(|| format!("Unexpected server response: {response}"))?; 184 .ok_or_else(|| format!("Unexpected server response: {response}"))?;
185 serde_json::from_str(raw).map_err(|error| format!("Invalid crash state: {error}")) 185 serde_json::from_str(raw).map_err(|error| format!("Invalid crash state: {error}"))
186} 186}
187
188pub fn parse_history_response(response: &str) -> Result<Vec<crate::history::PlayRecord>, String> {
189 let response = response.trim();
190 if response.is_empty() {
191 return Err("No response from server".to_string());
192 }
193 if let Some(message) = response.strip_prefix("ERROR") {
194 let message = message.trim();
195 return Err(if message.is_empty() {
196 "Server error".to_string()
197 } else {
198 message.to_string()
199 });
200 }
201
202 let raw = response
203 .strip_prefix("HISTORY ")
204 .ok_or_else(|| format!("Unexpected server response: {response}"))?;
205 serde_json::from_str(raw).map_err(|error| format!("Invalid history: {error}"))
206}