ObslyEventExtra.fromJson constructor

ObslyEventExtra.fromJson(
  1. Map<String, dynamic> json
)

Creates ObslyEventExtra from dynamic Map

Implementation

factory ObslyEventExtra.fromJson(Map<String, dynamic> json) {
  try {
    return ObslyEventExtra(
      device: json['device'] != null && json['device'] is Map<String, dynamic>
          ? Device.fromJson(json['device'] as Map<String, dynamic>)
          : null,
      app: json['app'] != null && json['app'] is Map<String, dynamic>
          ? App.fromJson(json['app'] as Map<String, dynamic>)
          : null,
      tags: json['tags'] != null && json['tags'] is List
          ? (json['tags'] as List)
              .map((e) => Tag.fromJson(e as Map<String, dynamic>))
              .toList()
          : null,
      request:
          json['request'] != null && json['request'] is Map<String, dynamic>
              ? Request.fromJson(json['request'] as Map<String, dynamic>)
              : null,
      error: json['error'] != null && json['error'] is Map<String, dynamic>
          ? Error.fromJson(json['error'] as Map<String, dynamic>)
          : null,
      user: json['user'] != null && json['user'] is Map<String, dynamic>
          ? User.fromJson(json['user'] as Map<String, dynamic>)
          : null,
      lifeCycle: json['life_cycle'] != null &&
              json['life_cycle'] is Map<String, dynamic>
          ? _parseLifeCycle(json['life_cycle'] as Map<String, dynamic>)
          : null,
      ui: json['ui'] != null && json['ui'] is Map<String, dynamic>
          ? Ui.fromJson(json['ui'] as Map<String, dynamic>)
          : null,
      performanceBlock: json['performance_block'] != null &&
              json['performance_block'] is Map<String, dynamic>
          ? Performance.fromJson(
              json['performance_block'] as Map<String, dynamic>,
            )
          : null,
      category: JsonFactoryMixin.safeString(json['category']),
      metric: json['metric'] != null && json['metric'] is Map<String, dynamic>
          ? Metric.fromJson(json['metric'] as Map<String, dynamic>)
          : null,
    );
  } on Exception {
    // Return empty object in case of error to avoid crashes
    return ObslyEventExtra();
  }
}