1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- use std::sync::Weak;
- use flowy_error::{FlowyError, FlowyResult};
- use flowy_sqlite::kv::StorePreferences;
- use lib_dispatch::prelude::{data_result_ok, AFPluginData, AFPluginState, DataResult};
- use crate::entities::{KeyPB, KeyValuePB};
- pub(crate) async fn set_key_value_handler(
- store_preferences: AFPluginState<Weak<StorePreferences>>,
- data: AFPluginData<KeyValuePB>,
- ) -> FlowyResult<()> {
- let data = data.into_inner();
- if let Some(store_preferences) = store_preferences.upgrade() {
- match data.value {
- None => store_preferences.remove(&data.key),
- Some(value) => {
- store_preferences.set_str(&data.key, value);
- },
- }
- }
- Ok(())
- }
- pub(crate) async fn get_key_value_handler(
- store_preferences: AFPluginState<Weak<StorePreferences>>,
- data: AFPluginData<KeyPB>,
- ) -> DataResult<KeyValuePB, FlowyError> {
- match store_preferences.upgrade() {
- None => Err(FlowyError::internal().context("The store preferences is already drop"))?,
- Some(store_preferences) => {
- let data = data.into_inner();
- let value = store_preferences.get_str(&data.key);
- data_result_ok(KeyValuePB {
- key: data.key,
- value,
- })
- },
- }
- }
- pub(crate) async fn remove_key_value_handler(
- store_preferences: AFPluginState<Weak<StorePreferences>>,
- data: AFPluginData<KeyPB>,
- ) -> FlowyResult<()> {
- match store_preferences.upgrade() {
- None => Err(FlowyError::internal().context("The store preferences is already drop"))?,
- Some(store_preferences) => {
- let data = data.into_inner();
- store_preferences.remove(&data.key);
- Ok(())
- },
- }
- }
|