IProovEvent.fromMap constructor

IProovEvent.fromMap(
  1. Map map
)

Implementation

factory IProovEvent.fromMap(Map map) {
  switch (map['event']) {
    case 'connecting':
      return const IProovEventConnecting();

    case 'connected':
      return const IProovEventConnected();

    case 'processing':
      return IProovEventProcessing(map['progress'], map['message']);

    case 'success':
      final frameData = map['frame'];
      final frame = frameData != null ? decodePng(frameData) : null;
      return IProovEventSuccess(frame);

    case 'failure':
      final reasonsRaw = map['reasons'] as List<dynamic>;
      final List<FailureReason> failureReasons = reasonsRaw.map((map) {
        final typedMap = Map<String, String>.from(map);
        return FailureReason.fromMap(typedMap);
      }).toList();
      final frameData = map['frame'];
      final frame = frameData != null ? decodePng(frameData) : null;
      return IProovEventFailure(failureReasons, frame);

    case 'canceled':
      final canceler = map['canceler'];
      return IProovEventCanceled(Canceler.values.byName(canceler));

    case 'error':
      return IProovEventError.create(map['error'], map['title'], map['message']);
  }
  throw Exception('Invalid event');
}