From dd1dcba5998a19ee5ec0ef32d47118477342e234 Mon Sep 17 00:00:00 2001 From: "Nathan.fooo" <86001920+appflowy@users.noreply.github.com> Date: Fri, 11 Nov 2022 17:24:10 +0800 Subject: [PATCH] chore: return user setting (#1438) --- .../lib/user/application/user_settings_service.dart | 5 +++++ .../rust-lib/flowy-user/src/entities/user_profile.rs | 6 ++++++ frontend/rust-lib/flowy-user/src/event_map.rs | 4 ++++ .../rust-lib/flowy-user/src/handlers/user_handler.rs | 9 ++++++++- .../rust-lib/flowy-user/src/services/user_session.rs | 9 ++++++++- 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/frontend/app_flowy/lib/user/application/user_settings_service.dart b/frontend/app_flowy/lib/user/application/user_settings_service.dart index b420af505c..ff5fe46270 100644 --- a/frontend/app_flowy/lib/user/application/user_settings_service.dart +++ b/frontend/app_flowy/lib/user/application/user_settings_service.dart @@ -2,6 +2,7 @@ import 'package:dartz/dartz.dart'; import 'package:flowy_sdk/dispatch/dispatch.dart'; import 'package:flowy_sdk/flowy_sdk.dart'; import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart'; +import 'package:flowy_sdk/protobuf/flowy-user/user_profile.pb.dart'; import 'package:flowy_sdk/protobuf/flowy-user/user_setting.pb.dart'; class SettingsFFIService { @@ -18,6 +19,10 @@ class SettingsFFIService { ); } + Future> getUserSetting() { + return UserEventGetUserSetting().send(); + } + Future> setAppearanceSetting( AppearanceSettingsPB setting) { return UserEventSetAppearanceSetting(setting).send(); diff --git a/frontend/rust-lib/flowy-user/src/entities/user_profile.rs b/frontend/rust-lib/flowy-user/src/entities/user_profile.rs index 4b423db3af..f77be6880c 100644 --- a/frontend/rust-lib/flowy-user/src/entities/user_profile.rs +++ b/frontend/rust-lib/flowy-user/src/entities/user_profile.rs @@ -12,6 +12,12 @@ pub struct UserTokenPB { pub token: String, } +#[derive(ProtoBuf, Default, Clone)] +pub struct UserSettingPB { + #[pb(index = 1)] + pub(crate) user_folder: String, +} + #[derive(ProtoBuf, Default, Debug, PartialEq, Eq, Clone)] pub struct UserProfilePB { #[pb(index = 1)] diff --git a/frontend/rust-lib/flowy-user/src/event_map.rs b/frontend/rust-lib/flowy-user/src/event_map.rs index ced1ede179..a6a6d69f5c 100644 --- a/frontend/rust-lib/flowy-user/src/event_map.rs +++ b/frontend/rust-lib/flowy-user/src/event_map.rs @@ -19,6 +19,7 @@ pub fn create(user_session: Arc) -> Module { .event(UserEvent::CheckUser, check_user_handler) .event(UserEvent::SetAppearanceSetting, set_appearance_setting) .event(UserEvent::GetAppearanceSetting, get_appearance_setting) + .event(UserEvent::GetUserSetting, get_user_setting) } pub trait UserCloudService: Send + Sync { @@ -62,4 +63,7 @@ pub enum UserEvent { #[event(output = "AppearanceSettingsPB")] GetAppearanceSetting = 8, + + #[event(output = "UserSettingPB")] + GetUserSetting = 9, } diff --git a/frontend/rust-lib/flowy-user/src/handlers/user_handler.rs b/frontend/rust-lib/flowy-user/src/handlers/user_handler.rs index 12b869903e..1abc30e2c6 100644 --- a/frontend/rust-lib/flowy-user/src/handlers/user_handler.rs +++ b/frontend/rust-lib/flowy-user/src/handlers/user_handler.rs @@ -1,5 +1,6 @@ use crate::entities::{ - AppearanceSettingsPB, UpdateUserProfileParams, UpdateUserProfilePayloadPB, UserProfilePB, APPEARANCE_DEFAULT_THEME, + AppearanceSettingsPB, UpdateUserProfileParams, UpdateUserProfilePayloadPB, UserProfilePB, UserSettingPB, + APPEARANCE_DEFAULT_THEME, }; use crate::{errors::FlowyError, services::UserSession}; use flowy_database::kv::KV; @@ -70,3 +71,9 @@ pub async fn get_appearance_setting() -> DataResult>) -> DataResult { + let user_setting = session.user_setting()?; + data_result(user_setting) +} diff --git a/frontend/rust-lib/flowy-user/src/services/user_session.rs b/frontend/rust-lib/flowy-user/src/services/user_session.rs index 3822a8a0db..66ae641986 100644 --- a/frontend/rust-lib/flowy-user/src/services/user_session.rs +++ b/frontend/rust-lib/flowy-user/src/services/user_session.rs @@ -1,5 +1,5 @@ use crate::entities::{ - SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserProfileParams, UserProfilePB, + SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserProfileParams, UserProfilePB, UserSettingPB, }; use crate::{ dart_notification::*, @@ -169,6 +169,13 @@ impl UserSession { Ok(format!("{}/{}", self.config.root_dir, session.user_id)) } + pub fn user_setting(&self) -> Result { + let user_setting = UserSettingPB { + user_folder: self.user_dir()?, + }; + Ok(user_setting) + } + pub fn user_id(&self) -> Result { Ok(self.get_session()?.user_id) }