LusciiSdkActionResponse.fromMap constructor

LusciiSdkActionResponse.fromMap(
  1. Map map
)

Creates a new LusciiSdkActionResponse from a map.

Implementation

factory LusciiSdkActionResponse.fromMap(Map<dynamic, dynamic> map) {
  // Assign values to explicitly typed variables
  final actionId = map['actionID'] as String?;
  final status = map['status'] as String?;

  // Check for required fields and their types
  if (actionId == null) {
    throw ArgumentError(
      "Expected 'actionId' to be a non-null String, but got "
      // ignore: avoid_dynamic_calls
      "${map['actionId']?.runtimeType}",
    );
  }
  if (status == null) {
    throw ArgumentError(
      "Expected 'status' to be a non-null String, but got "
      // ignore: avoid_dynamic_calls
      "${map['status']?.runtimeType}",
    );
  }

  if (status.contains('error')) {
    throw LusciiSdkException(reason: status);
  }

  return LusciiSdkActionResponse(
    actionId: actionId,
    status: status == 'completed'
        ? LusciiSdkActionResponseStatus.completed
        : LusciiSdkActionResponseStatus.cancelled,
  );
}