/* * 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; 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(); let resp = client .get(&format!("{}/game/{}", api_address, game_id)) .header("Authorization", token) .send() .unwrap(); resp.json().unwrap() }