use std::sync::Arc; use serde::Deserialize; use crate::{ErrorContext, logger}; use crate::{server::Server, utils::client::Client}; logger!(LOGGER "Auth"); #[derive(Debug, Deserialize)] struct AuthApiRes { user_id: String, } pub fn auth(_server: &Arc, client: &mut Client, token: &str) -> crate::Result { let mut res = ureq::get(format!( "http://localhost:3000/api/auth?intents=server&token={token}" )) .call() .context("Failed to authenticate")?; let api_res: AuthApiRes = serde_json::from_str(&res.body_mut().read_to_string()?)?; client.set_uuid(&api_res.user_id); LOGGER.info(format!("{} successfully authenticated", api_res.user_id)); Ok(api_res.user_id) }