/* * 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}; pub mod game; pub mod user; #[derive(Debug, Deserialize, Serialize)] pub struct APIError { pub id: u16, pub name: String, pub description: String, } #[derive(Debug, Deserialize, Serialize)] pub struct APIErrorWrapper { pub error: APIError, } impl std::fmt::Display for APIErrorWrapper { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!(f, "{} {}", self.error.id, self.error.description) } } #[derive(Serialize, Deserialize)] pub struct APIInfo { pub info: String, pub ver: String, } pub fn info(api_address: String) -> Result { let client = reqwest::blocking::Client::new(); let resp = client.get(&format!("{}/info", api_address)).send(); match resp { Ok(r) => Ok(r.json().unwrap()), Err(_) => Err("Could not reach API".to_string()), } }