Skip to main content

torii_lib/cloud/
whoami.rs

1//! GET /api/v1/whoami — verify API key + load org info.
2
3use serde::Deserialize;
4
5use super::{check_status, CloudClient};
6use crate::error::{Result, ToriiError};
7
8#[derive(Debug, Clone, Deserialize)]
9pub struct WhoAmI {
10    pub org_id: String,
11    pub org_name: String,
12    pub org_slug: String,
13    pub plan: String,
14    pub seats: i64,
15    pub suspended: bool,
16}
17
18pub fn whoami(client: &CloudClient) -> Result<WhoAmI> {
19    let resp = client
20        .get("/api/v1/whoami")
21        .send()
22        .map_err(|e| ToriiError::Network { provider: "gitorii.com".into(), message: format!("whoami request: {}", e) })?;
23    let resp = check_status(resp)?;
24    resp.json::<WhoAmI>()
25        .map_err(|e| ToriiError::MalformedResponse { provider: "gitorii.com".into(), message: format!("whoami parse: {}", e) })
26}