mod response;
use response::{ApiUsage, GroupMembers, GroupRoot, OverallQuotaRoot, UserRoot};
use crate::{
utils::{http_delete, http_get, http_get_with_params},
VtClient, VtResult,
};
impl VtClient {
pub fn user_info(&self, id: &str) -> VtResult<UserRoot> {
let url = format!("{}/users/{}", self.endpoint, id);
http_get(&self.api_key, &self.user_agent, &url)
}
pub fn delete_user(&self, id: &str) -> VtResult<UserRoot> {
let url = format!("{}/users/{}", self.endpoint, id);
http_delete(&self.api_key, &self.user_agent, &url)
}
pub fn api_usage(
&self,
id: &str,
start_date: Option<&str>,
end_date: Option<&str>,
) -> VtResult<ApiUsage> {
let url = format!("{}/users/{}/api_usage", self.endpoint, id);
let mut query_params: Vec<(&str, &str)> = Vec::new();
if let Some(s) = start_date {
query_params.push(("start_date", s))
}
if let Some(e) = end_date {
query_params.push(("end_date", e))
}
http_get_with_params(
&self.api_key,
&self.user_agent,
&url,
&query_params.as_slice(),
)
}
pub fn overall_quotas(&self, id: &str) -> VtResult<OverallQuotaRoot> {
let url = format!("{}/users/{}/overall_quotas", self.endpoint, id);
http_get(&self.api_key, &self.user_agent, &url)
}
pub fn group_info(&self, id: &str) -> VtResult<GroupRoot> {
let url = format!("{}/groups/{}", self.endpoint, id);
http_get(&self.api_key, &self.user_agent, &url)
}
pub fn group_members(&self, id: &str) -> VtResult<GroupMembers> {
let url = format!("{}/groups/{}/relationships/users", self.endpoint, id);
http_get(&self.api_key, &self.user_agent, &url)
}
pub fn group_api_usage(
&self,
id: &str,
start_date: Option<&str>,
end_date: Option<&str>,
) -> VtResult<ApiUsage> {
let url = format!("{}/groups/{}/api_usage", self.endpoint, id);
let mut query_params: Vec<(&str, &str)> = Vec::new();
if let Some(s) = start_date {
query_params.push(("start_date", s))
}
if let Some(e) = end_date {
query_params.push(("end_date", e))
}
http_get_with_params(
&self.api_key,
&self.user_agent,
&url,
&query_params.as_slice(),
)
}
}