ReportEvent.fromMap constructor

ReportEvent.fromMap(
  1. Map<String, dynamic> map
)

Rehydrates a ReportEvent from its map representation.

Implementation

factory ReportEvent.fromMap(Map<String, dynamic> map) {
  final ex = map['exception'] as Map<String, dynamic>?;

  final exception = ex != null
      ? SerializedException.fromMap(ex)
      : SerializedException(
          userMessage: 'Unknown error',
          devMessage: 'Unknown error',
        );

  return ReportEvent(
    id: map['id'] as String,
    exception: exception,
    context: (map['context'] as Map?)?.cast<String, dynamic>() ?? const {},
    timestamp: DateTime.parse(map['timestamp'] as String),
    fingerprints: (map['fingerprints'] as List?)?.cast<String>() ?? const [],
    breadcrumbs: (map['breadcrumbs'] as List?)
            ?.cast<Map<dynamic, dynamic>>()
            .map((m) => Breadcrumb.fromMap(m.cast<String, dynamic>()))
            .toList() ??
        const [],
    attachments: (map['attachments'] as List?)
            ?.cast<Map<dynamic, dynamic>>()
            .map((m) => Attachment.fromMap(m.cast<String, dynamic>()))
            .toList() ??
        const [],
    handled: (map['handled'] as bool?) ?? true,
    // Preserve the given map as the payload (already sanitized when read from outbox).
    payload: Map<String, dynamic>.from(map),
  );
}