66 lines
2.2 KiB
Rust
Raw Normal View History

2022-01-28 10:56:55 +08:00
use crate::{errors::FlowyError, handlers::*, services::UserSession};
2022-01-11 13:34:45 +08:00
use flowy_user_data_model::entities::{
2022-01-24 17:35:58 +08:00
SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserParams, UserProfile,
2022-01-10 23:45:59 +08:00
};
2022-01-11 13:34:45 +08:00
use lib_dispatch::prelude::*;
2022-01-10 23:45:59 +08:00
use lib_infra::future::FutureResult;
2021-07-09 23:31:44 +08:00
use std::sync::Arc;
2021-07-09 23:31:44 +08:00
pub fn create(user_session: Arc<UserSession>) -> Module {
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)
.event(UserEvent::CheckUser, check_user_handler)
2022-01-28 10:56:55 +08:00
.event(UserEvent::UpdateAppearanceSetting, update_appearance_setting)
.event(UserEvent::GetAppearanceSetting, get_appearance_setting)
}
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;
}
2022-01-28 10:56:55 +08:00
use flowy_derive::{Flowy_Event, ProtoBuf_Enum};
use strum_macros::Display;
#[derive(Clone, Copy, PartialEq, Eq, Debug, Display, Hash, ProtoBuf_Enum, Flowy_Event)]
#[event_err = "FlowyError"]
pub enum UserEvent {
#[event()]
InitUser = 0,
#[event(input = "SignInRequest", output = "UserProfile")]
SignIn = 1,
#[event(input = "SignUpRequest", output = "UserProfile")]
SignUp = 2,
#[event(passthrough)]
SignOut = 3,
#[event(input = "UpdateUserRequest")]
UpdateUser = 4,
#[event(output = "UserProfile")]
GetUserProfile = 5,
#[event(output = "UserProfile")]
CheckUser = 6,
#[event(input = "AppearanceSettings")]
UpdateAppearanceSetting = 7,
#[event(output = "AppearanceSettings")]
GetAppearanceSetting = 8,
}