feat(logging): add logging to messages inbox_repository
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user