From 8ae15449018fddd67a729e1f956eddbb024f909c Mon Sep 17 00:00:00 2001 From: Jonni Liljamo Date: Wed, 8 Feb 2023 13:15:20 +0200 Subject: [PATCH] feat(sdbclient): get all forming games from api --- sdbclient/src/api/game/mod.rs | 26 ++++++++++++++++++++++++++ sdbclient/src/api/game/types.rs | 19 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 sdbclient/src/api/game/types.rs diff --git a/sdbclient/src/api/game/mod.rs b/sdbclient/src/api/game/mod.rs index 3f312dd..c678443 100644 --- a/sdbclient/src/api/game/mod.rs +++ b/sdbclient/src/api/game/mod.rs @@ -11,6 +11,8 @@ use serde::{Deserialize, Serialize}; use super::APIErrorWrapper; +mod types; + #[derive(Debug, Serialize, Deserialize)] pub struct ResultCreateGame { pub id: String, @@ -34,3 +36,27 @@ pub fn create(api_address: String, token: String) -> ResponseCreateGame { resp.json().unwrap() } + +#[derive(Debug, Serialize, Deserialize)] +pub struct ResultAllForming { + pub games: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ResponseAllForming { + Error(APIErrorWrapper), + Valid(ResultAllForming), +} + +pub fn all_forming(api_address: String, token: String) -> ResponseAllForming { + let client = reqwest::blocking::Client::new(); + + let resp = client + .get(&format!("{}/game/all_forming", api_address)) + .header("Authorization", token) + .send() + .unwrap(); + + resp.json().unwrap() +} diff --git a/sdbclient/src/api/game/types.rs b/sdbclient/src/api/game/types.rs new file mode 100644 index 0000000..49f633f --- /dev/null +++ b/sdbclient/src/api/game/types.rs @@ -0,0 +1,19 @@ +/* + * This file is part of sdbclient + * Copyright (C) 2023 Jonni Liljamo + * + * Licensed under GPL-3.0-only. + * See LICENSE for licensing information. + */ + +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Serialize, Deserialize)] +pub struct Game { + pub id: String, + pub p1: String, + pub p2: String, + pub state: u8, + pub ended_at: String, +} + -- 2.44.1