use racal::Queryable;
use serde::{Deserialize, Serialize};
use super::{Authentication, Pagination};
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
pub struct User {
pub id: crate::id::User,
}
impl Queryable<Authentication, crate::model::AnyUser> for User {
fn url(&self, _: &Authentication) -> String {
format!("{}/users/{}", crate::API_BASE_URI, self.id.as_ref())
}
}
#[derive(
Clone, Debug, Default, Deserialize, Eq, Hash, PartialEq, Serialize,
)]
pub struct SearchUser {
pub search: String,
#[serde(flatten)]
pub pagination: Pagination,
}
impl Queryable<Authentication, Vec<crate::model::AccountData>> for SearchUser {
fn url(&self, _: &Authentication) -> String {
format!(
"{}/users?search={}&{}",
crate::API_BASE_URI,
self.search,
self.pagination.to_query_str()
)
}
}