use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(test, derive(Default))]
pub struct Session {
#[serde(rename = "$id")]
pub id: String,
#[serde(rename = "$createdAt")]
pub created_at: String,
#[serde(rename = "$updatedAt")]
pub updated_at: String,
#[serde(rename = "userId")]
pub user_id: String,
#[serde(rename = "expire")]
pub expire: String,
#[serde(rename = "provider")]
pub provider: String,
#[serde(rename = "providerUid")]
pub provider_uid: String,
#[serde(rename = "providerAccessToken")]
pub provider_access_token: String,
#[serde(rename = "providerAccessTokenExpiry")]
pub provider_access_token_expiry: String,
#[serde(rename = "providerRefreshToken")]
pub provider_refresh_token: String,
#[serde(rename = "ip")]
pub ip: String,
#[serde(rename = "osCode")]
pub os_code: String,
#[serde(rename = "osName")]
pub os_name: String,
#[serde(rename = "osVersion")]
pub os_version: String,
#[serde(rename = "clientType")]
pub client_type: String,
#[serde(rename = "clientCode")]
pub client_code: String,
#[serde(rename = "clientName")]
pub client_name: String,
#[serde(rename = "clientVersion")]
pub client_version: String,
#[serde(rename = "clientEngine")]
pub client_engine: String,
#[serde(rename = "clientEngineVersion")]
pub client_engine_version: String,
#[serde(rename = "deviceName")]
pub device_name: String,
#[serde(rename = "deviceBrand")]
pub device_brand: String,
#[serde(rename = "deviceModel")]
pub device_model: String,
#[serde(rename = "countryCode")]
pub country_code: String,
#[serde(rename = "countryName")]
pub country_name: String,
#[serde(rename = "current")]
pub current: bool,
#[serde(rename = "factors")]
pub factors: Vec<String>,
#[serde(rename = "secret")]
pub secret: String,
#[serde(rename = "mfaUpdatedAt")]
pub mfa_updated_at: String,
}
impl Session {
pub fn id(&self) -> &String {
&self.id
}
pub fn created_at(&self) -> &String {
&self.created_at
}
pub fn updated_at(&self) -> &String {
&self.updated_at
}
pub fn user_id(&self) -> &String {
&self.user_id
}
pub fn expire(&self) -> &String {
&self.expire
}
pub fn provider(&self) -> &String {
&self.provider
}
pub fn provider_uid(&self) -> &String {
&self.provider_uid
}
pub fn provider_access_token(&self) -> &String {
&self.provider_access_token
}
pub fn provider_access_token_expiry(&self) -> &String {
&self.provider_access_token_expiry
}
pub fn provider_refresh_token(&self) -> &String {
&self.provider_refresh_token
}
pub fn ip(&self) -> &String {
&self.ip
}
pub fn os_code(&self) -> &String {
&self.os_code
}
pub fn os_name(&self) -> &String {
&self.os_name
}
pub fn os_version(&self) -> &String {
&self.os_version
}
pub fn client_type(&self) -> &String {
&self.client_type
}
pub fn client_code(&self) -> &String {
&self.client_code
}
pub fn client_name(&self) -> &String {
&self.client_name
}
pub fn client_version(&self) -> &String {
&self.client_version
}
pub fn client_engine(&self) -> &String {
&self.client_engine
}
pub fn client_engine_version(&self) -> &String {
&self.client_engine_version
}
pub fn device_name(&self) -> &String {
&self.device_name
}
pub fn device_brand(&self) -> &String {
&self.device_brand
}
pub fn device_model(&self) -> &String {
&self.device_model
}
pub fn country_code(&self) -> &String {
&self.country_code
}
pub fn country_name(&self) -> &String {
&self.country_name
}
pub fn current(&self) -> &bool {
&self.current
}
pub fn factors(&self) -> &Vec<String> {
&self.factors
}
pub fn secret(&self) -> &String {
&self.secret
}
pub fn mfa_updated_at(&self) -> &String {
&self.mfa_updated_at
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_session_creation() {
let _model = <Session as Default>::default();
let _ = _model.id();
let _ = _model.created_at();
let _ = _model.updated_at();
let _ = _model.user_id();
let _ = _model.expire();
let _ = _model.provider();
let _ = _model.provider_uid();
let _ = _model.provider_access_token();
let _ = _model.provider_access_token_expiry();
let _ = _model.provider_refresh_token();
let _ = _model.ip();
let _ = _model.os_code();
let _ = _model.os_name();
let _ = _model.os_version();
let _ = _model.client_type();
let _ = _model.client_code();
let _ = _model.client_name();
let _ = _model.client_version();
let _ = _model.client_engine();
let _ = _model.client_engine_version();
let _ = _model.device_name();
let _ = _model.device_brand();
let _ = _model.device_model();
let _ = _model.country_code();
let _ = _model.country_name();
let _ = _model.current();
let _ = _model.factors();
let _ = _model.secret();
let _ = _model.mfa_updated_at();
}
#[test]
fn test_session_serialization() {
let model = <Session as Default>::default();
let json = serde_json::to_string(&model);
assert!(json.is_ok());
let deserialized: Result<Session, _> = serde_json::from_str(&json.unwrap());
assert!(deserialized.is_ok());
}
}