summaryrefslogtreecommitdiffstats
path: root/src/server/database.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/server/database.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 '')
-rw-r--r--src/server/database.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/database.rs b/src/server/database.rs
index 6dd71a3..cfc48c1 100644
--- a/src/server/database.rs
+++ b/src/server/database.rs
@@ -399,3 +399,30 @@ fn abandoned_details(raw: &str) -> String {
399 } 399 }
400 value.to_string() 400 value.to_string()
401} 401}
402
403/// Most recent settled plays for a user, newest first.
404pub fn recent_plays(
405 conn: &Connection,
406 username: &str,
407 limit: u32,
408) -> rusqlite::Result<Vec<crate::history::PlayRecord>> {
409 let mut statement = conn.prepare(
410 "SELECT game_type, bet_amount, winnings, balance_after, details, created_at
411 FROM plays
412 WHERE username = ?1
413 ORDER BY created_at DESC, rowid DESC
414 LIMIT ?2",
415 )?;
416 let rows = statement.query_map(params![username, limit], |row| {
417 let details: String = row.get(4)?;
418 Ok(crate::history::PlayRecord {
419 game: row.get(0)?,
420 bet: row.get(1)?,
421 winnings: row.get(2)?,
422 balance_after: row.get(3)?,
423 at: row.get(5)?,
424 details: serde_json::from_str(&details).unwrap_or(serde_json::Value::Null),
425 })
426 })?;
427 rows.collect()
428}