Convert to an Identity.
(&self)
| 161 | |
| 162 | /// Convert to an Identity. |
| 163 | fn to_identity(&self) -> Result<Identity, IdentityError> { |
| 164 | let public_key = PublicKey::from_base32(&self.public_key)?; |
| 165 | let id = IdentityId::from_public_key(&public_key); |
| 166 | |
| 167 | let identity_type = match self.identity_type.as_str() { |
| 168 | "user" => crate::identity::IdentityType::User, |
| 169 | "agent" => crate::identity::IdentityType::Agent, |
| 170 | "delegated" => crate::identity::IdentityType::Delegated, |
| 171 | _ => crate::identity::IdentityType::User, |
| 172 | }; |
| 173 | |
| 174 | let usage = IdentityUsage::parse(&self.usage); |
| 175 | |
| 176 | let delegated_by = self |
| 177 | .delegated_by |
| 178 | .as_ref() |
| 179 | .and_then(|s| IdentityId::from_base32(s).ok()); |
| 180 | |
| 181 | Ok(Identity { |
| 182 | id, |
| 183 | name: self.name.clone(), |
| 184 | email: self.email.clone(), |
| 185 | public_key, |
| 186 | identity_type, |
| 187 | usage, |
| 188 | metadata: self.metadata.clone(), |
| 189 | delegated_by, |
| 190 | }) |
| 191 | } |
| 192 | } |
| 193 | |
| 194 | /// Encrypted secret key storage. |
no test coverage detected