fromNative static method

List<MoveServiceWarning> fromNative(
  1. dynamic warnings
)

Implementation

static List<MoveServiceWarning> fromNative(warnings) {
  List<MoveServiceWarning> moveWarnings = [];
  for (var warning in warnings) {
    String service = warning["service"];
    List reasons = warning["reasons"];

    MoveDetectionService? targetService = MoveDetectionService.values
        .firstWhereOrNull(
            (element) => element.name.toLowerCase() == service.toLowerCase());

    List<MoveWarning> targetReasons = [];
    Iterable mapped = reasons.map((e) {
      MoveWarning? value = MoveWarning.values.firstWhereOrNull(
        (element) => element.name.toLowerCase() == e.toLowerCase(),
      );
      return value;
    });
    Iterable<MoveWarning> filtered = mapped.whereType<MoveWarning>();
    List<MoveWarning> resultList = filtered.toList();
    targetReasons = resultList;

    moveWarnings.add(MoveServiceWarning(
      service: targetService,
      reasons: targetReasons,
    ));
  }
  return moveWarnings;
}