From 76b87898906f29b261856dbb13f360d7afcf8588 Mon Sep 17 00:00:00 2001 From: Jonni Liljamo Date: Fri, 10 Feb 2023 10:04:31 +0200 Subject: [PATCH] feat(sdbapi): split game API calls to own files --- sdbclient/src/api/game/all_forming.rs | 33 +++++++++++++ sdbclient/src/api/game/create.rs | 36 ++++++++++++++ sdbclient/src/api/game/info.rs | 31 ++++++++++++ sdbclient/src/api/game/mod.rs | 70 +++------------------------ 4 files changed, 106 insertions(+), 64 deletions(-) create mode 100644 sdbclient/src/api/game/all_forming.rs create mode 100644 sdbclient/src/api/game/create.rs create mode 100644 sdbclient/src/api/game/info.rs diff --git a/sdbclient/src/api/game/all_forming.rs b/sdbclient/src/api/game/all_forming.rs new file mode 100644 index 0000000..bf8885e --- /dev/null +++ b/sdbclient/src/api/game/all_forming.rs @@ -0,0 +1,33 @@ +/* + * This file is part of sdbclient + * Copyright (C) 2023 Jonni Liljamo + * + * Licensed under GPL-3.0-only. + * See LICENSE for licensing information. + */ + +use reqwest; +use serde::{Deserialize, Serialize}; + +use super::{types, APIErrorWrapper}; + +pub type ResultAllForming = 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/create.rs b/sdbclient/src/api/game/create.rs new file mode 100644 index 0000000..3f312dd --- /dev/null +++ b/sdbclient/src/api/game/create.rs @@ -0,0 +1,36 @@ +/* + * This file is part of sdbclient + * Copyright (C) 2023 Jonni Liljamo + * + * Licensed under GPL-3.0-only. + * See LICENSE for licensing information. + */ + +use reqwest; +use serde::{Deserialize, Serialize}; + +use super::APIErrorWrapper; + +#[derive(Debug, Serialize, Deserialize)] +pub struct ResultCreateGame { + pub id: String, +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ResponseCreateGame { + Error(APIErrorWrapper), + Valid(ResultCreateGame), +} + +pub fn create(api_address: String, token: String) -> ResponseCreateGame { + let client = reqwest::blocking::Client::new(); + + let resp = client + .post(&format!("{}/game/create", api_address)) + .header("Authorization", token) + .send() + .unwrap(); + + resp.json().unwrap() +} diff --git a/sdbclient/src/api/game/info.rs b/sdbclient/src/api/game/info.rs new file mode 100644 index 0000000..cb5f1a0 --- /dev/null +++ b/sdbclient/src/api/game/info.rs @@ -0,0 +1,31 @@ +/* + * This file is part of sdbclient + * Copyright (C) 2023 Jonni Liljamo + * + * Licensed under GPL-3.0-only. + * See LICENSE for licensing information. + */ + +use reqwest; +use serde::{Deserialize, Serialize}; + +use super::{types, APIErrorWrapper}; + +#[derive(Debug, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ResponseInfo { + Error(APIErrorWrapper), + Valid(types::Game), +} + +pub fn info(api_address: String, token: String, game_id: String) -> ResponseInfo { + let client = reqwest::blocking::Client::new(); + + let resp = client + .get(&format!("{}/game/{}", api_address, game_id)) + .header("Authorization", token) + .send() + .unwrap(); + + resp.json().unwrap() +} diff --git a/sdbclient/src/api/game/mod.rs b/sdbclient/src/api/game/mod.rs index fed8706..3ce0d04 100644 --- a/sdbclient/src/api/game/mod.rs +++ b/sdbclient/src/api/game/mod.rs @@ -6,73 +6,15 @@ * See LICENSE for licensing information. */ -use reqwest; -use serde::{Deserialize, Serialize}; - use super::APIErrorWrapper; pub mod types; -#[derive(Debug, Serialize, Deserialize)] -pub struct ResultCreateGame { - pub id: String, -} - -#[derive(Debug, Serialize, Deserialize)] -#[serde(untagged)] -pub enum ResponseCreateGame { - Error(APIErrorWrapper), - Valid(ResultCreateGame), -} - -pub fn create(api_address: String, token: String) -> ResponseCreateGame { - let client = reqwest::blocking::Client::new(); - - let resp = client - .post(&format!("{}/game/create", api_address)) - .header("Authorization", token) - .send() - .unwrap(); - - resp.json().unwrap() -} - -pub type ResultAllForming = 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() -} - -#[derive(Debug, Serialize, Deserialize)] -#[serde(untagged)] -pub enum ResponseInfo { - Error(APIErrorWrapper), - Valid(types::Game), -} - -pub fn info(api_address: String, token: String, game_id: String) -> ResponseInfo { - let client = reqwest::blocking::Client::new(); +mod create; +pub use create::*; - let resp = client - .get(&format!("{}/game/{}", api_address, game_id)) - .header("Authorization", token) - .send() - .unwrap(); +mod all_forming; +pub use all_forming::*; - resp.json().unwrap() -} +mod info; +pub use info::*; -- 2.44.1