signer-daemon 0.2.1

Signer daemon package.
Documentation
use serde::{Deserialize, Serialize};
use signer_core::SignerUserPublic;

use crate::entity::user;

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct UserVO {
  pub pub_key: String,
  pub user_public: String,
  pub signed_user_public: String,
}

impl From<user::Model> for UserVO {
  fn from(value: user::Model) -> Self {
    Self {
      pub_key: value.pub_key,
      user_public: value.user_public,
      signed_user_public: value.signed_user_public,
    }
  }
}

impl Into<user::Model> for UserVO {
  fn into(self) -> user::Model {
    user::Model {
      pub_key: self.pub_key,
      user_public: self.user_public,
      signed_user_public: self.signed_user_public,
    }
  }
}

impl UserVO {
  pub fn public(&self) -> anyhow::Result<SignerUserPublic> {
    let user_public = serde_json::from_str(&self.user_public)?;
    Ok(user_public)
  }
}