event_map.rs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. use crate::{errors::FlowyError, handlers::*, services::UserSession};
  2. use flowy_user_data_model::entities::{
  3. SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserParams, UserProfile,
  4. };
  5. use lib_dispatch::prelude::*;
  6. use lib_infra::future::FutureResult;
  7. use std::sync::Arc;
  8. pub fn create(user_session: Arc<UserSession>) -> Module {
  9. Module::new()
  10. .name("Flowy-User")
  11. .data(user_session)
  12. .event(UserEvent::SignIn, sign_in)
  13. .event(UserEvent::SignUp, sign_up)
  14. .event(UserEvent::InitUser, init_user_handler)
  15. .event(UserEvent::GetUserProfile, get_user_profile_handler)
  16. .event(UserEvent::SignOut, sign_out)
  17. .event(UserEvent::UpdateUser, update_user_handler)
  18. .event(UserEvent::CheckUser, check_user_handler)
  19. .event(UserEvent::SetAppearanceSetting, set_appearance_setting)
  20. .event(UserEvent::GetAppearanceSetting, get_appearance_setting)
  21. }
  22. pub trait UserCloudService: Send + Sync {
  23. fn sign_up(&self, params: SignUpParams) -> FutureResult<SignUpResponse, FlowyError>;
  24. fn sign_in(&self, params: SignInParams) -> FutureResult<SignInResponse, FlowyError>;
  25. fn sign_out(&self, token: &str) -> FutureResult<(), FlowyError>;
  26. fn update_user(&self, token: &str, params: UpdateUserParams) -> FutureResult<(), FlowyError>;
  27. fn get_user(&self, token: &str) -> FutureResult<UserProfile, FlowyError>;
  28. fn ws_addr(&self) -> String;
  29. }
  30. use flowy_derive::{Flowy_Event, ProtoBuf_Enum};
  31. use strum_macros::Display;
  32. #[derive(Clone, Copy, PartialEq, Eq, Debug, Display, Hash, ProtoBuf_Enum, Flowy_Event)]
  33. #[event_err = "FlowyError"]
  34. pub enum UserEvent {
  35. #[event()]
  36. InitUser = 0,
  37. #[event(input = "SignInPayload", output = "UserProfile")]
  38. SignIn = 1,
  39. #[event(input = "SignUpPayload", output = "UserProfile")]
  40. SignUp = 2,
  41. #[event(passthrough)]
  42. SignOut = 3,
  43. #[event(input = "UpdateUserPayload")]
  44. UpdateUser = 4,
  45. #[event(output = "UserProfile")]
  46. GetUserProfile = 5,
  47. #[event(output = "UserProfile")]
  48. CheckUser = 6,
  49. #[event(input = "AppearanceSettings")]
  50. SetAppearanceSetting = 7,
  51. #[event(output = "AppearanceSettings")]
  52. GetAppearanceSetting = 8,
  53. }