feat: add todo cache repository and precise invalidation
This commit is contained in:
+1
-8
@@ -1,19 +1,12 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'hybrid_cache_store.dart';
|
||||
|
||||
class CacheInvalidator {
|
||||
final HybridCacheStore? _store;
|
||||
final Set<String> _invalidated = <String>{};
|
||||
|
||||
CacheInvalidator({HybridCacheStore? store}) : _store = store;
|
||||
CacheInvalidator({HybridCacheStore? store});
|
||||
|
||||
void invalidate(String key) {
|
||||
_invalidated.add(key);
|
||||
final removeFuture = _store?.remove(key);
|
||||
if (removeFuture != null) {
|
||||
unawaited(removeFuture);
|
||||
}
|
||||
}
|
||||
|
||||
void invalidateCalendarDay(DateTime date) {
|
||||
|
||||
@@ -29,6 +29,7 @@ import '../../features/settings/data/services/settings_user_cache.dart';
|
||||
import '../../features/settings/data/services/user_profile_cache_repository.dart';
|
||||
import '../../features/users/data/users_api.dart';
|
||||
import '../../features/todo/data/todo_api.dart';
|
||||
import '../../features/todo/data/todo_repository.dart';
|
||||
|
||||
final sl = GetIt.instance;
|
||||
|
||||
@@ -124,6 +125,13 @@ Future<void> configureDependencies() async {
|
||||
|
||||
final todoApi = TodoApi(apiClient);
|
||||
sl.registerSingleton<TodoApi>(todoApi);
|
||||
sl.registerSingleton<TodoRepository>(
|
||||
TodoRepository(
|
||||
api: todoApi,
|
||||
store: hybridCacheStore,
|
||||
invalidator: sl<CacheInvalidator>(),
|
||||
),
|
||||
);
|
||||
|
||||
final authRepository = AuthRepositoryImpl(
|
||||
api: authApi,
|
||||
|
||||
Reference in New Issue
Block a user