event_handler.rs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. use appflowy_integrate::config::AWSDynamoDBConfig;
  2. use appflowy_integrate::SupabaseDBConfig;
  3. use flowy_error::{FlowyError, FlowyResult};
  4. use flowy_server::supabase::SupabaseConfiguration;
  5. use flowy_sqlite::kv::KV;
  6. use lib_dispatch::prelude::{data_result_ok, AFPluginData, DataResult};
  7. use crate::entities::{CollabPluginConfigPB, KeyPB, KeyValuePB, SupabaseConfigPB};
  8. pub(crate) async fn set_key_value_handler(data: AFPluginData<KeyValuePB>) -> FlowyResult<()> {
  9. let data = data.into_inner();
  10. match data.value {
  11. None => KV::remove(&data.key),
  12. Some(value) => {
  13. KV::set_str(&data.key, value);
  14. },
  15. }
  16. Ok(())
  17. }
  18. pub(crate) async fn get_key_value_handler(
  19. data: AFPluginData<KeyPB>,
  20. ) -> DataResult<KeyValuePB, FlowyError> {
  21. let data = data.into_inner();
  22. let value = KV::get_str(&data.key);
  23. data_result_ok(KeyValuePB {
  24. key: data.key,
  25. value,
  26. })
  27. }
  28. pub(crate) async fn remove_key_value_handler(data: AFPluginData<KeyPB>) -> FlowyResult<()> {
  29. let data = data.into_inner();
  30. KV::remove(&data.key);
  31. Ok(())
  32. }
  33. pub(crate) async fn set_supabase_config_handler(
  34. data: AFPluginData<SupabaseConfigPB>,
  35. ) -> FlowyResult<()> {
  36. let config = SupabaseConfiguration::try_from(data.into_inner())?;
  37. config.write_env();
  38. Ok(())
  39. }
  40. pub(crate) async fn set_collab_plugin_config_handler(
  41. data: AFPluginData<CollabPluginConfigPB>,
  42. ) -> FlowyResult<()> {
  43. let config = data.into_inner();
  44. if let Some(aws_config_pb) = config.aws_config {
  45. if let Ok(aws_config) = AWSDynamoDBConfig::try_from(aws_config_pb) {
  46. aws_config.write_env();
  47. }
  48. }
  49. if let Some(supabase_config_pb) = config.supabase_config {
  50. if let Ok(supabase_config) = SupabaseDBConfig::try_from(supabase_config_pb) {
  51. supabase_config.write_env();
  52. }
  53. }
  54. Ok(())
  55. }