use anyhow::{Context, Result, bail};
use crate::transport::agent_base_url;
use relay_lib::prelude::{AgentId, KeyRecord, UserId};
pub fn get_agent_record(agent: &AgentId) -> Result<KeyRecord> {
let resp = reqwest::blocking::Client::new()
.get(agent_base_url(agent)?.join("/keys/agent")?)
.send()
.context("Failed to send request to fetch agent record")?;
if !resp.status().is_success() {
let status = resp.status();
let body = resp.text().unwrap_or_default();
bail!("Failed to fetch agent record: {} - {}", status, body);
}
resp.json::<KeyRecord>()
.context("Failed to parse agent record response")
}
pub fn get_user_record(agent: &AgentId, user: UserId) -> Result<KeyRecord> {
let resp = reqwest::blocking::Client::new()
.get(agent_base_url(agent)?.join(&format!("/keys/user/{}", user))?)
.send()
.context("Failed to send request to fetch user record")?;
if !resp.status().is_success() {
let status = resp.status();
let body = resp.text().unwrap_or_default();
bail!("Failed to fetch user record: {} - {}", status, body);
}
resp.json::<KeyRecord>()
.context("Failed to parse user record response")
}