use anyhow::anyhow;
use serde::{Deserialize, Serialize};
use super::{account_token::AccountToken, login::CredentialAuthToken};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LinkCredentialRequest {
pub account_token: AccountToken,
pub credential_auth_token: CredentialAuthToken,
}
pub fn link_credential(
account_token_hex: String,
credential_auth_token_hex: String,
) -> anyhow::Result<LinkCredentialRequest> {
let account_token = hex::decode(account_token_hex)?;
let credential_auth_token = hex::decode(credential_auth_token_hex)?;
Ok(LinkCredentialRequest {
account_token: account_token
.try_into()
.map_err(|_| anyhow!("Invalid account token."))?,
credential_auth_token: credential_auth_token
.try_into()
.map_err(|_| anyhow!("Invalid credential auth token."))?,
})
}