InappifySessionStateChange.fromMap constructor

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

Implementation

factory InappifySessionStateChange.fromMap(Map<String, dynamic> map) {
  final rawState = map['state'];
  final retryable = map['retryable'];
  final reason = map['reason'];
  if (rawState is! String || retryable is! bool) {
    throw const FormatException(
      'Session state event requires string state and bool retryable fields.',
    );
  }
  if (reason != null && reason is! String) {
    throw const FormatException(
      'Session state event reason must be a string or null.',
    );
  }
  final state = InappifySessionState.fromWire(rawState);
  if (state == InappifySessionState.unknown) {
    throw FormatException('Unsupported Inappify session state: $rawState.');
  }
  return InappifySessionStateChange(
    state: state,
    isRetryable: retryable,
    reason: reason as String?,
  );
}