refreshAttachments method

Future<void> refreshAttachments(
  1. MessageDto message
)

Signed attachment links expire after a day. When one fails to load, fetch that message again for fresh links (once per message per session).

Implementation

Future<void> refreshAttachments(MessageDto message) async {
  final token = _token;
  if (token == null || message.seq <= 0 || !_refreshed.add(message.id)) return;
  try {
    final page = await _api.messages(
      token: token,
      conversationId: message.conversationId,
      afterSeq: message.seq - 1,
      limit: 1,
    );
    _mergeItems(page.items);
  } on Object catch (e) {
    _log.warn('attachment refresh failed: $e');
  }
}