import 'package:dartz/dartz.dart'; import 'package:appflowy_backend/dispatch/dispatch.dart'; import 'package:appflowy_backend/appflowy_backend.dart'; import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-user/user_profile.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-user/user_setting.pb.dart'; class UserSettingsBackendService { Future getAppearanceSetting() async { final result = await UserEventGetAppearanceSetting().send(); return result.fold( (AppearanceSettingsPB setting) => setting, (error) => throw FlowySDKException(ExceptionType.AppearanceSettingsIsEmpty), ); } Future> getUserSetting() { return UserEventGetUserSetting().send(); } Future> setAppearanceSetting( AppearanceSettingsPB setting, ) { return UserEventSetAppearanceSetting(setting).send(); } Future getDateTimeSettings() async { final result = await UserEventGetDateTimeSettings().send(); return result.fold( (DateTimeSettingsPB setting) => setting, (error) => throw FlowySDKException(ExceptionType.AppearanceSettingsIsEmpty), ); } Future> setDateTimeSettings( DateTimeSettingsPB settings, ) async { return (await UserEventSetDateTimeSettings(settings).send()).swap(); } Future> setNotificationSettings( NotificationSettingsPB settings, ) async { return (await UserEventSetNotificationSettings(settings).send()).swap(); } Future getNotificationSettings() async { final result = await UserEventGetNotificationSettings().send(); return result.fold( (NotificationSettingsPB setting) => setting, (error) => throw FlowySDKException(ExceptionType.AppearanceSettingsIsEmpty), ); } }