user_event.rs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. use std::sync::Arc;
  2. use nanoid::nanoid;
  3. use flowy_user::entities::{AuthTypePB, SignInPayloadPB, SignUpPayloadPB, UserProfilePB};
  4. use flowy_user::errors::FlowyError;
  5. use flowy_user::event_map::UserEvent::*;
  6. use lib_dispatch::prelude::{AFPluginDispatcher, AFPluginRequest, ToBytes};
  7. pub fn random_email() -> String {
  8. format!("{}@appflowy.io", nanoid!(20))
  9. }
  10. pub fn login_email() -> String {
  11. "[email protected]".to_string()
  12. }
  13. pub fn login_password() -> String {
  14. "HelloWorld!123".to_string()
  15. }
  16. pub struct SignUpContext {
  17. pub user_profile: UserProfilePB,
  18. pub password: String,
  19. }
  20. pub fn sign_up(dispatch: Arc<AFPluginDispatcher>) -> SignUpContext {
  21. let password = login_password();
  22. let payload = SignUpPayloadPB {
  23. email: random_email(),
  24. name: "app flowy".to_string(),
  25. password: password.clone(),
  26. auth_type: AuthTypePB::Local,
  27. }
  28. .into_bytes()
  29. .unwrap();
  30. let request = AFPluginRequest::new(SignUp).payload(payload);
  31. let user_profile = AFPluginDispatcher::sync_send(dispatch, request)
  32. .parse::<UserProfilePB, FlowyError>()
  33. .unwrap()
  34. .unwrap();
  35. SignUpContext {
  36. user_profile,
  37. password,
  38. }
  39. }
  40. pub async fn async_sign_up(
  41. dispatch: Arc<AFPluginDispatcher>,
  42. auth_type: AuthTypePB,
  43. ) -> SignUpContext {
  44. let password = login_password();
  45. let email = random_email();
  46. let payload = SignUpPayloadPB {
  47. email,
  48. name: "app flowy".to_string(),
  49. password: password.clone(),
  50. auth_type,
  51. }
  52. .into_bytes()
  53. .unwrap();
  54. let request = AFPluginRequest::new(SignUp).payload(payload);
  55. let user_profile = AFPluginDispatcher::async_send(dispatch.clone(), request)
  56. .await
  57. .parse::<UserProfilePB, FlowyError>()
  58. .unwrap()
  59. .unwrap();
  60. // let _ = create_default_workspace_if_need(dispatch.clone(), &user_profile.id);
  61. SignUpContext {
  62. user_profile,
  63. password,
  64. }
  65. }
  66. pub async fn init_user_setting(dispatch: Arc<AFPluginDispatcher>) {
  67. let request = AFPluginRequest::new(InitUser);
  68. let _ = AFPluginDispatcher::async_send(dispatch.clone(), request).await;
  69. }
  70. #[allow(dead_code)]
  71. fn sign_in(dispatch: Arc<AFPluginDispatcher>) -> UserProfilePB {
  72. let payload = SignInPayloadPB {
  73. email: login_email(),
  74. password: login_password(),
  75. name: "rust".to_owned(),
  76. auth_type: AuthTypePB::Local,
  77. }
  78. .into_bytes()
  79. .unwrap();
  80. let request = AFPluginRequest::new(SignIn).payload(payload);
  81. AFPluginDispatcher::sync_send(dispatch, request)
  82. .parse::<UserProfilePB, FlowyError>()
  83. .unwrap()
  84. .unwrap()
  85. }