feat(logging): add logging to todo repository
This commit is contained in:
@@ -3,6 +3,7 @@ import 'dart:async';
|
|||||||
import '../../../../data/cache/cache_store.dart';
|
import '../../../../data/cache/cache_store.dart';
|
||||||
import '../../../../data/cache/cache_policy.dart';
|
import '../../../../data/cache/cache_policy.dart';
|
||||||
import '../../../../data/cache/cached_repository.dart';
|
import '../../../../data/cache/cached_repository.dart';
|
||||||
|
import '../../../../core/logging/logger.dart';
|
||||||
import '../apis/todo_api.dart';
|
import '../apis/todo_api.dart';
|
||||||
|
|
||||||
class TodoRepository extends CachedRepository<List<TodoResponse>> {
|
class TodoRepository extends CachedRepository<List<TodoResponse>> {
|
||||||
@@ -10,6 +11,7 @@ class TodoRepository extends CachedRepository<List<TodoResponse>> {
|
|||||||
|
|
||||||
final TodoApi api;
|
final TodoApi api;
|
||||||
final CacheInvalidator invalidator;
|
final CacheInvalidator invalidator;
|
||||||
|
final Logger _logger = getLogger('features.todo.repository');
|
||||||
|
|
||||||
TodoRepository({
|
TodoRepository({
|
||||||
required this.api,
|
required this.api,
|
||||||
@@ -50,7 +52,14 @@ class TodoRepository extends CachedRepository<List<TodoResponse>> {
|
|||||||
try {
|
try {
|
||||||
await api.completeTodo(id);
|
await api.completeTodo(id);
|
||||||
invalidator.invalidate(pendingListKey);
|
invalidator.invalidate(pendingListKey);
|
||||||
} catch (error) {
|
_logger.info(message: 'Todo completed', extra: {'todo_id': id});
|
||||||
|
} catch (error, stackTrace) {
|
||||||
|
_logger.error(
|
||||||
|
message: 'Failed to complete todo',
|
||||||
|
error: error,
|
||||||
|
stackTrace: stackTrace,
|
||||||
|
extra: {'todo_id': id},
|
||||||
|
);
|
||||||
if (cached != null) {
|
if (cached != null) {
|
||||||
await writeCacheEntry(pendingListKey, cached.value);
|
await writeCacheEntry(pendingListKey, cached.value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user