26 lines
725 B
Rust
26 lines
725 B
Rust
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<Server>, client: &mut Client, token: &str) -> crate::Result<String> {
|
|
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)
|
|
}
|