util.rs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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, SupabaseCollabStorageImpl, SupabaseDatabaseServiceImpl,
  9. SupabaseFolderServiceImpl, SupabaseServerServiceImpl, SupabaseUserServiceImpl,
  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. None,
  26. ))
  27. }
  28. pub fn database_service() -> Arc<dyn DatabaseCloudService> {
  29. let config = SupabaseConfiguration::from_env().unwrap();
  30. let server = Arc::new(RESTfulPostgresServer::new(config));
  31. Arc::new(SupabaseDatabaseServiceImpl::new(
  32. SupabaseServerServiceImpl::new(server),
  33. ))
  34. }
  35. pub fn user_auth_service() -> Arc<dyn UserService> {
  36. let config = SupabaseConfiguration::from_env().unwrap();
  37. let server = Arc::new(RESTfulPostgresServer::new(config));
  38. Arc::new(SupabaseUserServiceImpl::new(
  39. SupabaseServerServiceImpl::new(server),
  40. ))
  41. }
  42. pub fn folder_service() -> Arc<dyn FolderCloudService> {
  43. let config = SupabaseConfiguration::from_env().unwrap();
  44. let server = Arc::new(RESTfulPostgresServer::new(config));
  45. Arc::new(SupabaseFolderServiceImpl::new(
  46. SupabaseServerServiceImpl::new(server),
  47. ))
  48. }
  49. pub fn sign_up_param(uuid: String) -> HashMap<String, String> {
  50. let mut params = HashMap::new();
  51. params.insert(USER_UUID.to_string(), uuid);
  52. params.insert(
  53. USER_EMAIL.to_string(),
  54. format!("{}@test.com", Uuid::new_v4()),
  55. );
  56. params
  57. }