feat(logging): add logging to messages inbox_repository

This commit is contained in:
qzl
2026-04-01 14:31:28 +08:00
parent 7c311b0785
commit ccf6da60a1
@@ -1,6 +1,7 @@
import '../../../../data/network/i_api_client.dart';
import '../../../../data/cache/cache_policy.dart';
import '../../../../data/cache/cached_repository.dart';
import '../../../../core/logging/logger.dart';
import '../models/inbox_message.dart';
abstract class InboxRepository {
@@ -14,6 +15,7 @@ abstract class InboxRepository {
class InboxRepositoryImpl extends CachedRepository<List<InboxMessage>>
implements InboxRepository {
final IApiClient _apiClient;
final Logger _logger = getLogger('features.messages.repository');
static const _prefix = '/api/v1/inbox/messages';
InboxRepositoryImpl({required IApiClient apiClient, required super.store})
@@ -41,6 +43,7 @@ class InboxRepositoryImpl extends CachedRepository<List<InboxMessage>>
}
Future<List<InboxMessage>> _loadMessagesFromRemote({bool? isRead}) async {
try {
final queryParams = isRead != null ? '?is_read=$isRead' : '';
final response = await _apiClient.get<List<dynamic>>(
'$_prefix$queryParams',
@@ -53,10 +56,20 @@ class InboxRepositoryImpl extends CachedRepository<List<InboxMessage>>
.whereType<Map<String, dynamic>>()
.map(InboxMessage.fromJson)
.toList(growable: false);
} catch (e, stackTrace) {
_logger.error(
message: 'Failed to load messages from remote',
error: e,
stackTrace: stackTrace,
extra: {'is_read': isRead},
);
rethrow;
}
}
@override
Future<InboxMessage> markAsRead(String messageId) async {
try {
final response = await _apiClient.patch<Map<String, dynamic>>(
'$_prefix/$messageId/read',
);
@@ -70,7 +83,20 @@ class InboxRepositoryImpl extends CachedRepository<List<InboxMessage>>
removeCacheKey(_messagesKey(true)),
removeCacheKey(_messagesKey(null)),
]);
_logger.info(
message: 'Message marked as read',
extra: {'message_id': messageId},
);
return message;
} catch (e, stackTrace) {
_logger.error(
message: 'Failed to mark message as read',
error: e,
stackTrace: stackTrace,
extra: {'message_id': messageId},
);
rethrow;
}
}
static String _messagesKey(bool? isRead) {