fix: session update on new login/register

This commit is contained in:
Mahesh Bansod 2021-10-24 01:56:16 +05:30
parent f0d24ec03b
commit a5fabda8eb
2 changed files with 12 additions and 3 deletions

View File

@ -16,7 +16,7 @@ async fn main() {
let mut sv = sv_client::new_empty_client();
sv.reset_cdn_url().await.unwrap(); //set proper CDN url
let mut current_session: usize = std::env::var("SV_CURRENT_SESSION")
.unwrap_or_else(|_| "0".to_string())
.unwrap_or_else(|_| config.current_session.to_string())
.parse()
.expect("The environment variable should SV_CURRENT_SESSION should contain an integer >=0");
@ -36,6 +36,7 @@ async fn main() {
current_session
};
current_session = sk;
sv.set_current_session(current_session).unwrap();
let password = prompt_password("Enter password: ");
//TODO: add OTP support
match sv.authenticate_user(username, password, None).await {
@ -57,6 +58,7 @@ async fn main() {
.new_session()
.await
.expect("Couldn't create a new session");
sv.set_current_session(current_session).unwrap();
}
let first_name = prompt_stdin("First name: ");
let last_name = {
@ -92,7 +94,7 @@ async fn main() {
})
.await
{
Ok(peer) => println!("Registered.\n{:?}", peer),
Ok(peer) => println!("Registered.\n{:#?}", peer),
Err(err) => println!("Couldn't register.\n{}", MyFriendlyError::from(err)),
}
} else {
@ -107,7 +109,7 @@ async fn main() {
setup_sessions(&config, &mut sv, &mut current_session).await;
match sv.get_me().await {
Ok(response) => println!("{:?}", response),
Ok(response) => println!("{:#?}", response),
Err(err) => println!("{}", MyFriendlyError::from(err)),
}
}

View File

@ -31,6 +31,12 @@ pub async fn setup_sessions(config: &Config, sv: &mut sv_client::Client, sesh_ke
.expect("Couldn't create a new session.");
}
if sv.sessions.len() <= *sesh_key {
*sesh_key = sv.sessions.len() - 1;
}
sv.set_current_session(*sesh_key).unwrap();
match sv.get_session().await {
Ok(_) => {}
Err(err) => match err {
@ -43,6 +49,7 @@ pub async fn setup_sessions(config: &Config, sv: &mut sv_client::Client, sesh_ke
.new_session()
.await
.expect("Couldn't create a new session.");
sv.set_current_session(new_sesh_key).unwrap();
*sesh_key = new_sesh_key;
}
_ => {