Skip to main content

polyoxide_gamma/api/
user.rs

1use polyoxide_core::{HttpClient, QueryBuilder, Request};
2use serde::{Deserialize, Serialize};
3
4use crate::error::GammaError;
5
6/// User API namespace
7#[derive(Clone)]
8pub struct User {
9    pub(crate) http_client: HttpClient,
10}
11
12impl User {
13    /// Get user details
14    pub fn get(&self, signer_address: impl Into<String>) -> Request<UserResponse, GammaError> {
15        Request::new(self.http_client.clone(), "/public-profile")
16            .query("address", signer_address.into())
17    }
18}
19
20/// User details response
21#[derive(Debug, Clone, Serialize, Deserialize)]
22#[serde(rename_all = "camelCase")]
23pub struct UserResponse {
24    /// The user's proxy wallet address (Treasury)
25    #[serde(rename = "proxyWallet")]
26    pub proxy: Option<String>,
27    /// The user's EOA address (Signer)
28    pub address: Option<String>,
29    /// Account ID
30    pub id: Option<String>,
31    /// Username/Display name
32    pub name: Option<String>,
33}