steam-user 0.1.0

Steam User web client for Rust - HTTP-based Steam Community interactions
Documentation
use steamid::SteamID;

use super::super::{GasError, GasSteamUser};
use crate::types::{AliasEntry, AvatarHistoryEntry, AvatarUploadResponse, SteamProfile, SteamUserProfile, UserSummaryProfile, UserSummaryXml};

impl GasSteamUser {
    pub async fn resolve_user(&self, steam_id: SteamID) -> Result<Option<SteamUserProfile>, GasError> {
        let id = steam_id.steam_id64().to_string();
        self.call("resolve_user", &[("steamId64", &id)]).await
    }
    pub async fn get_profile(&self, steam_id: Option<SteamID>) -> Result<SteamProfile, GasError> {
        match steam_id {
            Some(id) => {
                let s = id.steam_id64().to_string();
                self.call("get_profile", &[("steamId64", &s)]).await
            }
            None => self.call("get_profile", &[]).await,
        }
    }
    pub async fn fetch_full_profile(&self, steam_id: SteamID) -> Result<SteamProfile, GasError> {
        let id = steam_id.steam_id64().to_string();
        self.call("fetch_full_profile", &[("identifier", &id)]).await
    }
    pub async fn edit_profile(&self, settings: serde_json::Value) -> Result<(), GasError> {
        let s = serde_json::to_string(&settings).map_err(GasError::Json)?;
        self.call_void("edit_profile", &[("settings", &s)]).await
    }
    pub async fn set_persona_name(&self, name: &str) -> Result<(), GasError> {
        self.call_void("set_persona_name", &[("name", name)]).await
    }
    pub async fn get_alias_history(&self, steam_id: SteamID) -> Result<Vec<AliasEntry>, GasError> {
        let id = steam_id.steam_id64().to_string();
        self.call("get_alias_history", &[("steamId64", &id)]).await
    }
    pub async fn clear_previous_aliases(&self) -> Result<(), GasError> {
        self.call_void("clear_previous_aliases", &[]).await
    }
    pub async fn set_nickname(&self, steam_id: SteamID, nickname: &str) -> Result<(), GasError> {
        let id = steam_id.steam_id64().to_string();
        self.call_void("set_nickname", &[("targetSteamId64", &id), ("nickname", nickname)]).await
    }
    pub async fn remove_nickname(&self, steam_id: SteamID) -> Result<(), GasError> {
        let id = steam_id.steam_id64().to_string();
        self.call_void("remove_nickname", &[("targetSteamId64", &id)]).await
    }
    pub async fn post_profile_status(&self, text: &str, app_id: Option<u32>) -> Result<u64, GasError> {
        let app_str = app_id.unwrap_or(0).to_string();
        self.call("post_profile_status", &[("text", text), ("appId", &app_str)]).await
    }
    pub async fn select_previous_avatar(&self, avatar_hash: &str) -> Result<(), GasError> {
        self.call_void("select_previous_avatar", &[("avatarHash", avatar_hash)]).await
    }
    pub async fn setup_profile(&self) -> Result<bool, GasError> {
        self.call("setup_profile", &[]).await
    }
    pub async fn get_user_summary_from_xml(&self, steam_id: SteamID) -> Result<UserSummaryXml, GasError> {
        let id = steam_id.steam_id64().to_string();
        self.call("get_user_summary_from_xml", &[("steamId64", &id)]).await
    }
    pub async fn get_user_summary_from_profile(&self, steam_id: Option<SteamID>) -> Result<UserSummaryProfile, GasError> {
        match steam_id {
            Some(id) => {
                let s = id.steam_id64().to_string();
                self.call("get_user_summary_from_profile", &[("steamId64", &s)]).await
            }
            None => self.call("get_user_summary_from_profile", &[]).await,
        }
    }
    pub async fn get_avatar_history(&self) -> Result<Vec<AvatarHistoryEntry>, GasError> {
        self.call("get_avatar_history", &[]).await
    }
    pub async fn upload_avatar_from_url(&self, url: &str) -> Result<AvatarUploadResponse, GasError> {
        self.call("upload_avatar_from_url", &[("imageUrl", url)]).await
    }
}