feat: 重构 memory 系统,支持 user memory 和 work memory 分离
This commit is contained in:
@@ -98,6 +98,19 @@ class ApiClient implements IApiClient {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Response<T>> put<T>(
|
||||
String path, {
|
||||
dynamic data,
|
||||
Options? options,
|
||||
}) async {
|
||||
try {
|
||||
return await _dio.put<T>(path, data: data, options: options);
|
||||
} on DioException catch (e) {
|
||||
throw ApiException.fromDioError(e);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Response<T>> delete<T>(
|
||||
String path, {
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:dio/dio.dart';
|
||||
abstract class IApiClient {
|
||||
Future<Response<T>> get<T>(String path, {Options? options});
|
||||
Future<Response<T>> post<T>(String path, {dynamic data, Options? options});
|
||||
Future<Response<T>> put<T>(String path, {dynamic data, Options? options});
|
||||
Future<Response<T>> patch<T>(String path, {dynamic data, Options? options});
|
||||
Future<Response<T>> delete<T>(String path, {dynamic data, Options? options});
|
||||
Future<Stream<String>> getSseLines(
|
||||
|
||||
@@ -26,6 +26,7 @@ import '../../features/messages/data/inbox_api.dart';
|
||||
import '../../features/settings/data/settings_api.dart';
|
||||
import '../../features/settings/data/services/settings_user_cache.dart';
|
||||
import '../../features/settings/data/services/user_profile_cache_repository.dart';
|
||||
import '../../features/settings/data/services/memory_service.dart';
|
||||
import '../../features/users/data/users_api.dart';
|
||||
import '../../features/todo/data/todo_api.dart';
|
||||
import '../../features/todo/data/todo_repository.dart';
|
||||
@@ -111,6 +112,9 @@ Future<void> configureDependencies() async {
|
||||
final settingsApi = SettingsApi(apiClient);
|
||||
sl.registerSingleton<SettingsApi>(settingsApi);
|
||||
|
||||
final memoryService = MemoryService(apiClient);
|
||||
sl.registerSingleton<MemoryService>(memoryService);
|
||||
|
||||
sl.registerSingleton<SettingsUserCache>(
|
||||
SettingsUserCache(userProfileCacheRepository),
|
||||
);
|
||||
|
||||
@@ -24,6 +24,8 @@ import '../../features/todo/ui/screens/todo_edit_screen.dart';
|
||||
import '../../features/settings/ui/screens/settings_screen.dart';
|
||||
import '../../features/settings/ui/screens/features_screen.dart';
|
||||
import '../../features/settings/ui/screens/memory_screen.dart';
|
||||
import '../../features/settings/ui/screens/user_memory_detail_screen.dart';
|
||||
import '../../features/settings/ui/screens/work_memory_detail_screen.dart';
|
||||
import '../../features/settings/ui/screens/edit_profile_screen.dart';
|
||||
|
||||
final _homeSecondLevelRoutes = [
|
||||
@@ -41,6 +43,8 @@ final _protectedRoutes = [
|
||||
'/calendar/events',
|
||||
AppRoutes.settingsFeatures,
|
||||
AppRoutes.settingsMemory,
|
||||
AppRoutes.settingsMemoryUser,
|
||||
AppRoutes.settingsMemoryWork,
|
||||
AppRoutes.settingsEditProfile,
|
||||
AppRoutes.messageInviteList,
|
||||
];
|
||||
@@ -176,6 +180,14 @@ GoRouter createAppRouter(AuthBloc authBloc) {
|
||||
path: AppRoutes.settingsMemory,
|
||||
builder: (context, state) => const MemoryScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: AppRoutes.settingsMemoryUser,
|
||||
builder: (context, state) => const UserMemoryDetailScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: AppRoutes.settingsMemoryWork,
|
||||
builder: (context, state) => const WorkMemoryDetailScreen(),
|
||||
),
|
||||
GoRoute(
|
||||
path: AppRoutes.settingsEditProfile,
|
||||
builder: (context, state) => const EditProfileScreen(),
|
||||
|
||||
@@ -30,5 +30,7 @@ class AppRoutes {
|
||||
static const settingsMain = '/settings';
|
||||
static const settingsFeatures = '/settings/features';
|
||||
static const settingsMemory = '/settings/memory';
|
||||
static const settingsMemoryUser = '/settings/memory/user';
|
||||
static const settingsMemoryWork = '/settings/memory/work';
|
||||
static const settingsEditProfile = '/edit-profile';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user