Преглед изворни кода

chore: return user setting (#1438)

Nathan.fooo пре 2 година
родитељ
комит
dd1dcba599

+ 5 - 0
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/dispatch/dispatch.dart';
 import 'package:flowy_sdk/flowy_sdk.dart';
 import 'package:flowy_sdk/flowy_sdk.dart';
 import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.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';
 import 'package:flowy_sdk/protobuf/flowy-user/user_setting.pb.dart';
 
 
 class SettingsFFIService {
 class SettingsFFIService {
@@ -18,6 +19,10 @@ class SettingsFFIService {
     );
     );
   }
   }
 
 
+  Future<Either<UserSettingPB, FlowyError>> getUserSetting() {
+    return UserEventGetUserSetting().send();
+  }
+
   Future<Either<Unit, FlowyError>> setAppearanceSetting(
   Future<Either<Unit, FlowyError>> setAppearanceSetting(
       AppearanceSettingsPB setting) {
       AppearanceSettingsPB setting) {
     return UserEventSetAppearanceSetting(setting).send();
     return UserEventSetAppearanceSetting(setting).send();

+ 6 - 0
frontend/rust-lib/flowy-user/src/entities/user_profile.rs

@@ -12,6 +12,12 @@ pub struct UserTokenPB {
     pub token: String,
     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)]
 #[derive(ProtoBuf, Default, Debug, PartialEq, Eq, Clone)]
 pub struct UserProfilePB {
 pub struct UserProfilePB {
     #[pb(index = 1)]
     #[pb(index = 1)]

+ 4 - 0
frontend/rust-lib/flowy-user/src/event_map.rs

@@ -19,6 +19,7 @@ pub fn create(user_session: Arc<UserSession>) -> Module {
         .event(UserEvent::CheckUser, check_user_handler)
         .event(UserEvent::CheckUser, check_user_handler)
         .event(UserEvent::SetAppearanceSetting, set_appearance_setting)
         .event(UserEvent::SetAppearanceSetting, set_appearance_setting)
         .event(UserEvent::GetAppearanceSetting, get_appearance_setting)
         .event(UserEvent::GetAppearanceSetting, get_appearance_setting)
+        .event(UserEvent::GetUserSetting, get_user_setting)
 }
 }
 
 
 pub trait UserCloudService: Send + Sync {
 pub trait UserCloudService: Send + Sync {
@@ -62,4 +63,7 @@ pub enum UserEvent {
 
 
     #[event(output = "AppearanceSettingsPB")]
     #[event(output = "AppearanceSettingsPB")]
     GetAppearanceSetting = 8,
     GetAppearanceSetting = 8,
+
+    #[event(output = "UserSettingPB")]
+    GetUserSetting = 9,
 }
 }

+ 8 - 1
frontend/rust-lib/flowy-user/src/handlers/user_handler.rs

@@ -1,5 +1,6 @@
 use crate::entities::{
 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 crate::{errors::FlowyError, services::UserSession};
 use flowy_database::kv::KV;
 use flowy_database::kv::KV;
@@ -70,3 +71,9 @@ pub async fn get_appearance_setting() -> DataResult<AppearanceSettingsPB, FlowyE
         }
         }
     }
     }
 }
 }
+
+#[tracing::instrument(level = "debug", skip_all, err)]
+pub async fn get_user_setting(session: AppData<Arc<UserSession>>) -> DataResult<UserSettingPB, FlowyError> {
+    let user_setting = session.user_setting()?;
+    data_result(user_setting)
+}

+ 8 - 1
frontend/rust-lib/flowy-user/src/services/user_session.rs

@@ -1,5 +1,5 @@
 use crate::entities::{
 use crate::entities::{
-    SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserProfileParams, UserProfilePB,
+    SignInParams, SignInResponse, SignUpParams, SignUpResponse, UpdateUserProfileParams, UserProfilePB, UserSettingPB,
 };
 };
 use crate::{
 use crate::{
     dart_notification::*,
     dart_notification::*,
@@ -169,6 +169,13 @@ impl UserSession {
         Ok(format!("{}/{}", self.config.root_dir, session.user_id))
         Ok(format!("{}/{}", self.config.root_dir, session.user_id))
     }
     }
 
 
+    pub fn user_setting(&self) -> Result<UserSettingPB, FlowyError> {
+        let user_setting = UserSettingPB {
+            user_folder: self.user_dir()?,
+        };
+        Ok(user_setting)
+    }
+
     pub fn user_id(&self) -> Result<String, FlowyError> {
     pub fn user_id(&self) -> Result<String, FlowyError> {
         Ok(self.get_session()?.user_id)
         Ok(self.get_session()?.user_id)
     }
     }