use serde::{Deserialize, Serialize};
use signer_core::{SignerKeys, SignerUser};
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
pub struct SignerSummary {
pub keys: SignerKeys,
pub user: SignerUser,
}
impl SignerSummary {
pub fn get_keys(&self) -> &SignerKeys {
&self.keys
}
pub fn get_user(&self) -> &SignerUser {
&self.user
}
pub fn get_username(&self) -> &str {
&self.user.username
}
pub fn get_pub_key(&self) -> &str {
&self.user.pub_key
}
}
#[cfg(test)]
mod tests {
use super::SignerSummary;
use signer_core::{SignerKeys, SignerServer, SignerUser};
#[test]
fn test_signer_summary_import_and_build() {
let keys = SignerKeys::generate().expect("Failed to generate SignerKeys");
let user = SignerUser {
pub_key: keys.pub_key.clone(),
username: "test_user".to_string(),
avatar: None,
update_time: 1234567890,
servers: vec![SignerServer {
addr: "https://example.com/api".to_string(),
}],
};
let summary = SignerSummary {
keys: keys.clone(),
user: user.clone(),
};
assert_eq!(summary.keys.pub_key, keys.pub_key);
assert_eq!(summary.keys.prv_key, keys.prv_key);
assert_eq!(summary.user.pub_key, user.pub_key);
assert_eq!(summary.user.username, user.username);
assert_eq!(summary.user.servers, user.servers);
}
}