util.rs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. use std::collections::HashMap;
  2. use std::sync::Arc;
  3. use collab_plugins::cloud_storage::RemoteCollabStorage;
  4. use uuid::Uuid;
  5. use flowy_database_deps::cloud::DatabaseCloudService;
  6. use flowy_folder_deps::cloud::FolderCloudService;
  7. use flowy_server::supabase::api::{
  8. RESTfulPostgresServer, RESTfulSupabaseUserAuthServiceImpl, SupabaseCollabStorageImpl,
  9. SupabaseDatabaseServiceImpl, SupabaseFolderServiceImpl, SupabaseServerServiceImpl,
  10. };
  11. use flowy_server::supabase::define::{USER_EMAIL, USER_UUID};
  12. use flowy_server_config::supabase_config::SupabaseConfiguration;
  13. use flowy_user_deps::cloud::UserService;
  14. use crate::setup_log;
  15. pub fn get_supabase_config() -> Option<SupabaseConfiguration> {
  16. dotenv::from_filename("./.env.test").ok()?;
  17. setup_log();
  18. SupabaseConfiguration::from_env().ok()
  19. }
  20. pub fn collab_service() -> Arc<dyn RemoteCollabStorage> {
  21. let config = SupabaseConfiguration::from_env().unwrap();
  22. let server = Arc::new(RESTfulPostgresServer::new(config));
  23. Arc::new(SupabaseCollabStorageImpl::new(
  24. SupabaseServerServiceImpl::new(server),
  25. ))
  26. }
  27. pub fn database_service() -> Arc<dyn DatabaseCloudService> {
  28. let config = SupabaseConfiguration::from_env().unwrap();
  29. let server = Arc::new(RESTfulPostgresServer::new(config));
  30. Arc::new(SupabaseDatabaseServiceImpl::new(
  31. SupabaseServerServiceImpl::new(server),
  32. ))
  33. }
  34. pub fn user_auth_service() -> Arc<dyn UserService> {
  35. let config = SupabaseConfiguration::from_env().unwrap();
  36. let server = Arc::new(RESTfulPostgresServer::new(config));
  37. Arc::new(RESTfulSupabaseUserAuthServiceImpl::new(
  38. SupabaseServerServiceImpl::new(server),
  39. ))
  40. }
  41. pub fn folder_service() -> Arc<dyn FolderCloudService> {
  42. let config = SupabaseConfiguration::from_env().unwrap();
  43. let server = Arc::new(RESTfulPostgresServer::new(config));
  44. Arc::new(SupabaseFolderServiceImpl::new(
  45. SupabaseServerServiceImpl::new(server),
  46. ))
  47. }
  48. pub fn sign_up_param(uuid: String) -> HashMap<String, String> {
  49. let mut params = HashMap::new();
  50. params.insert(USER_UUID.to_string(), uuid);
  51. params.insert(
  52. USER_EMAIL.to_string(),
  53. format!("{}@test.com", Uuid::new_v4()),
  54. );
  55. params
  56. }