1use reqwest::Client;
2use serde_json::Value;
3use std::error::Error;
4
5pub async fn get_uuid(username: &str) -> Result<String, Box<dyn Error>> {
6 let url = format!(
7 "https://api.mojang.com/users/profiles/minecraft/{}",
8 username
9 );
10 let client = Client::new();
11 let response = client.get(&url).send().await?;
12 let body = response.text().await?;
13 get_id(&body)
14}
15
16fn get_id(all: &str) -> Result<String, Box<dyn Error>> {
17 let v: Value = serde_json::from_str(all)?;
18 if let Some(id) = v.get("id") {
19 if let Some(id_str) = id.as_str() {
20 return Ok(id_str.to_string());
21 }
22 }
23 Err("Cannot find 'id', or wrong formatting".into())
24}