steam-user 0.1.0

Steam User web client for Rust - HTTP-based Steam Community interactions
Documentation
use super::super::{GasError, GasSteamUser};
use crate::types::{TradeOfferAsset, TradeOfferResult, TradeOffersResponse};

impl GasSteamUser {
    pub async fn get_trade_url(&self) -> Result<Option<String>, GasError> {
        self.call("get_trade_url", &[]).await
    }
    pub async fn get_trade_offer(&self) -> Result<TradeOffersResponse, GasError> {
        self.call("get_trade_offers", &[]).await
    }
    pub async fn accept_trade_offer(&self, trade_offer_id: u64, partner_steam_id: Option<String>) -> Result<String, GasError> {
        let tid = trade_offer_id.to_string();
        match partner_steam_id {
            Some(ref pid) => self.call("accept_trade_offer", &[("tradeOfferId", &tid), ("partnerSteamId", pid)]).await,
            None => self.call("accept_trade_offer", &[("tradeOfferId", &tid)]).await,
        }
    }
    pub async fn decline_trade_offer(&self, trade_offer_id: u64) -> Result<(), GasError> {
        let tid = trade_offer_id.to_string();
        self.call_void("decline_trade_offer", &[("tradeOfferId", &tid)]).await
    }
    pub async fn send_trade_offer(&self, trade_url: &str, my_assets: Vec<TradeOfferAsset>, their_assets: Vec<TradeOfferAsset>, message: &str) -> Result<TradeOfferResult, GasError> {
        let ma = serde_json::to_string(&my_assets).map_err(GasError::Json)?;
        let ta = serde_json::to_string(&their_assets).map_err(GasError::Json)?;
        self.call("send_trade_offer", &[("tradeUrl", trade_url), ("myAssets", &ma), ("theirAssets", &ta), ("message", message)]).await
    }
}