use racal::Queryable;
use serde::{Deserialize, Serialize};
use super::NoAuthentication;
pub struct Sessions;
impl Queryable<NoAuthentication, Vec<crate::model::SessionInfo>> for Sessions {
fn url(&self, _: &NoAuthentication) -> String {
format!("{}/sessions", crate::API_BASE_URI)
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct SessionInfo {
pub session_id: crate::id::Session,
}
impl SessionInfo {
pub fn new(session_id: impl Into<crate::id::Session>) -> Self {
Self { session_id: session_id.into() }
}
}
impl Queryable<NoAuthentication, crate::model::SessionInfo> for SessionInfo {
fn url(&self, _: &NoAuthentication) -> String {
format!("{}/sessions/{}", crate::API_BASE_URI, self.session_id.as_ref())
}
}