From fafc864dfeda8ba433aa510ae54adde3ebbaed7b Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Sun, 7 May 2023 11:32:11 +0200 Subject: [PATCH] Impl user::get() function --- src/api/users/users.rs | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/api/users/users.rs b/src/api/users/users.rs index 0190944..2692cbb 100644 --- a/src/api/users/users.rs +++ b/src/api/users/users.rs @@ -1 +1,37 @@ -pub fn doathing() {} +use crate::{ + api::{ + limits::Limits, + types::{User, UserObject}, + }, + errors::InstanceServerError, +}; + +impl<'a> User<'a> { + pub async fn get( + token: &String, + url_api: &String, + id: Option<&String>, + instance_limits: &mut Limits, + ) -> Result { + let url: String; + if id.is_none() { + url = format!("{}/users/@me/", url_api); + } else { + url = format!("{}/users/{}", url_api, id.unwrap()); + } + let request = reqwest::Client::new().get(url).bearer_auth(token); + let mut requester = crate::limit::LimitedRequester::new().await; + match requester + .send_request( + request, + crate::api::limits::LimitType::Ip, + instance_limits, + &mut Limits::default(), + ) + .await + { + Ok(result) => Ok(serde_json::from_str(&result.text().await.unwrap()).unwrap()), + Err(e) => Err(e), + } + } +}