From 4eb8e65248a4cbb214cf01ba2427cf8c3fc3f050 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sat, 14 Oct 2017 12:33:51 +0200 Subject: [PATCH] Return a copy of the session object from log_in, register_* --- src/lib.rs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 971d22d5..836d68dd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -109,7 +109,7 @@ where /// session data returned by the endpoint in this client, instead of /// returning it. pub fn log_in(&self, user: String, password: String) - -> impl Future { + -> impl Future { use api::r0::session::login; let data = self.0.clone(); @@ -121,15 +121,17 @@ where password, user, }).map(move |response| { - *data.session.borrow_mut() = - Some(Session::new(response.access_token, response.user_id)); + let session = Session::new(response.access_token, response.user_id); + *data.session.borrow_mut() = Some(session.clone()); + + session }) } /// Register as a guest. In contrast to api::r0::account::register::call(), /// this method stores the session data returned by the endpoint in this /// client, instead of returning it. - pub fn register_guest(&self) -> impl Future { + pub fn register_guest(&self) -> impl Future { use api::r0::account::register; let data = self.0.clone(); @@ -143,8 +145,10 @@ where password: None, username: None, }).map(move |response| { - *data.session.borrow_mut() = - Some(Session::new(response.access_token, response.user_id)); + let session = Session::new(response.access_token, response.user_id); + *data.session.borrow_mut() = Some(session.clone()); + + session }) } @@ -160,7 +164,7 @@ where &self, username: Option, password: String, - ) -> impl Future { + ) -> impl Future { use api::r0::account::register; let data = self.0.clone(); @@ -174,8 +178,10 @@ where password: Some(password), username: username, }).map(move |response| { - *data.session.borrow_mut() = - Some(Session::new(response.access_token, response.user_id)); + let session = Session::new(response.access_token, response.user_id); + *data.session.borrow_mut() = Some(session.clone()); + + session }) }