parent
47ba03102c
commit
bc5e64b79d
|
@ -1,5 +1,41 @@
|
||||||
|
use std::sync::{Arc, RwLock};
|
||||||
|
|
||||||
pub use login::*;
|
pub use login::*;
|
||||||
pub use register::*;
|
pub use register::*;
|
||||||
|
|
||||||
|
use crate::{
|
||||||
|
errors::ChorusResult,
|
||||||
|
gateway::Gateway,
|
||||||
|
instance::{ChorusUser, Instance},
|
||||||
|
types::{GatewayIdentifyPayload, User},
|
||||||
|
};
|
||||||
|
|
||||||
pub mod login;
|
pub mod login;
|
||||||
pub mod register;
|
pub mod register;
|
||||||
|
|
||||||
|
impl Instance {
|
||||||
|
/// Logs into an existing account on the spacebar server, using only a token.
|
||||||
|
pub async fn login_with_token(&mut self, token: String) -> ChorusResult<ChorusUser> {
|
||||||
|
let object_result = self.get_user(token.clone(), None).await;
|
||||||
|
if let Err(e) = object_result {
|
||||||
|
return Result::Err(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
let user_settings = User::get_settings(&token, &self.urls.api, &mut self.clone())
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let mut identify = GatewayIdentifyPayload::common();
|
||||||
|
let gateway = Gateway::new(self.urls.wss.clone()).await.unwrap();
|
||||||
|
identify.token = token.clone();
|
||||||
|
gateway.send_identify(identify).await;
|
||||||
|
let user = ChorusUser::new(
|
||||||
|
Arc::new(RwLock::new(self.clone())),
|
||||||
|
token.clone(),
|
||||||
|
self.clone_limits_if_some(),
|
||||||
|
Arc::new(RwLock::new(user_settings)),
|
||||||
|
Arc::new(RwLock::new(object_result.unwrap())),
|
||||||
|
gateway,
|
||||||
|
);
|
||||||
|
Ok(user)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue