2021-11-19 14:38:11 +08:00
|
|
|
use lib_dispatch::prelude::*;
|
2021-06-29 16:52:29 +08:00
|
|
|
|
2022-01-10 23:45:59 +08:00
|
|
|
use crate::{
|
|
|
|
entities::{SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserParams, UserProfile},
|
|
|
|
errors::FlowyError,
|
|
|
|
event::UserEvent,
|
|
|
|
handlers::*,
|
|
|
|
services::user::UserSession,
|
|
|
|
};
|
|
|
|
use lib_infra::future::FutureResult;
|
2021-07-09 23:31:44 +08:00
|
|
|
use std::sync::Arc;
|
2021-07-09 14:02:42 +08:00
|
|
|
|
2021-07-09 23:31:44 +08:00
|
|
|
pub fn create(user_session: Arc<UserSession>) -> Module {
|
2021-06-29 16:52:29 +08:00
|
|
|
Module::new()
|
2021-07-03 14:14:10 +08:00
|
|
|
.name("Flowy-User")
|
2021-07-09 23:31:44 +08:00
|
|
|
.data(user_session)
|
2021-07-25 08:13:59 +08:00
|
|
|
.event(UserEvent::SignIn, sign_in)
|
|
|
|
.event(UserEvent::SignUp, sign_up)
|
2021-09-17 19:03:46 +08:00
|
|
|
.event(UserEvent::InitUser, init_user_handler)
|
|
|
|
.event(UserEvent::GetUserProfile, get_user_profile_handler)
|
2021-07-25 08:13:59 +08:00
|
|
|
.event(UserEvent::SignOut, sign_out)
|
2021-08-31 23:01:46 +08:00
|
|
|
.event(UserEvent::UpdateUser, update_user_handler)
|
2021-09-25 21:47:02 +08:00
|
|
|
.event(UserEvent::CheckUser, check_user_handler)
|
2021-06-29 16:52:29 +08:00
|
|
|
}
|
2022-01-10 23:45:59 +08:00
|
|
|
|
|
|
|
pub trait UserCloudService: Send + Sync {
|
|
|
|
fn sign_up(&self, params: SignUpParams) -> FutureResult<SignUpResponse, FlowyError>;
|
|
|
|
fn sign_in(&self, params: SignInParams) -> FutureResult<SignInResponse, FlowyError>;
|
|
|
|
fn sign_out(&self, token: &str) -> FutureResult<(), FlowyError>;
|
|
|
|
fn update_user(&self, token: &str, params: UpdateUserParams) -> FutureResult<(), FlowyError>;
|
|
|
|
fn get_user(&self, token: &str) -> FutureResult<UserProfile, FlowyError>;
|
|
|
|
fn ws_addr(&self) -> String;
|
|
|
|
}
|