polyoxide_gamma/api/
user.rs1use polyoxide_core::{HttpClient, QueryBuilder, Request};
2use serde::{Deserialize, Serialize};
3
4use crate::error::GammaError;
5
6#[derive(Clone)]
8pub struct User {
9 pub(crate) http_client: HttpClient,
10}
11
12impl User {
13 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#[derive(Debug, Clone, Serialize, Deserialize)]
22#[serde(rename_all = "camelCase")]
23pub struct UserResponse {
24 #[serde(rename = "proxyWallet")]
26 pub proxy: Option<String>,
27 pub address: Option<String>,
29 pub id: Option<String>,
31 pub name: Option<String>,
33 pub created_at: Option<String>,
35 pub profile_image: Option<String>,
37 pub display_username_public: Option<bool>,
39 pub bio: Option<String>,
41 pub pseudonym: Option<String>,
43 pub x_username: Option<String>,
45 pub verified_badge: Option<bool>,
47 #[serde(default)]
49 pub users: Vec<UserInfo>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(rename_all = "camelCase")]
55pub struct UserInfo {
56 pub id: Option<String>,
58 #[serde(default)]
60 pub creator: bool,
61 #[serde(rename = "mod")]
63 #[serde(default)]
64 pub moderator: bool,
65}