use crate::{
db::{read_db, write_db},
protocols::did_exchange::datatypes::{State, UserType},
};
pub fn save_didexchange(
from_did: &str,
to_did: &str,
thid: &str,
exchange_data: &str,
state: &State,
) -> Result<(), Box<dyn std::error::Error>> {
write_db(
&format!("did_exchange_{}_{}_{}_{}", from_did, to_did, state, thid),
exchange_data,
)?;
Ok(())
}
pub fn save_state(
thid: &str,
state: &State,
user_type: &UserType,
) -> Result<(), Box<dyn std::error::Error>> {
write_db(
&format!("did_exchange_state_{}_{}", user_type, thid),
&state.to_string(),
)?;
Ok(())
}
pub fn get_current_state(
thid: &str,
user_type: &UserType,
) -> Result<String, Box<dyn std::error::Error>> {
let result = read_db(&format!("did_exchange_state_{}_{}", user_type, thid));
let state = match result {
Ok(value) => value,
Err(_) => "Unknown".to_string(),
};
Ok(state)
}