use std::env; use reqwest::Url; use serde_derive::{Serialize, Deserialize}; #[derive(Serialize, Deserialize, Debug)] #[serde(rename_all = "camelCase")] pub struct Element { pub id: Box, pub name: Box, pub simple_name: Box, pub color: u64, } impl Element { #[allow(dead_code)] async fn get(element: &str) -> Element { let host = env::var("API_HOST").unwrap(); let port = env::var("API_PORT").unwrap(); let url = format!("http://{}:{}/api/elements/{}", host, port, element); let url = Url::parse(&url).expect("Can't convert url"); reqwest::get(url).await.expect("Can't access Url").json::().await.expect("Wrong json format") } #[allow(dead_code)] async fn get_all() -> Vec> { let host = env::var("API_HOST").unwrap(); let port = env::var("API_PORT").unwrap(); let url = format!("http://{}:{}/api/elements", host, port); let url = Url::parse(&url).expect("Can't convert url"); reqwest::get(url).await.expect("Can't access Url").json::>>().await.expect("Wrong json format") } } #[test] fn test_element() { let data = std::fs::read_to_string("test/element.json").expect("No Element test file"); serde_json::from_str::(&data).expect("Didn't work"); }