decodeJson2 method

Future<Map<String, List<Map<String, dynamic>>>> decodeJson2({
  1. required Map<String, dynamic> jsonResponse,
})

Implementation

Future<Map<String, List<Map<String, dynamic>>>> decodeJson2(
    {required Map<String, dynamic> jsonResponse}) async {
  Map<String, List<Map<String, dynamic>>> derived2 =
      <String, List<Map<String, dynamic>>>{};
  // print('decodeJson2: ${jsonResponse.length}, ${jsonResponse}');
  // Sort FormDetails by Sequence
  if (jsonResponse.containsKey(ConstantName.formDetails)) {
    List<Map<String, dynamic>> formDetails = List<Map<String, dynamic>>.from(
        jsonResponse[ConstantName.formDetails]);

    if (formDetails.isNotEmpty) {
      formDetails.sort((a, b) =>
          a[ConstantName.sequence].compareTo(b[ConstantName.sequence]));
      // Printing the sorted FormDetails
      // print('formDetails: $formDetails');

      // --> Next process
      for (int i = 0; i < formDetails.length; i++) {
        // --> Add keys: formDependable & formApi
        formDetails[i].addAll(<String, List<Map<String, dynamic>>>{
          ConstantName.formDependable: <Map<String, dynamic>>[],
          ConstantName.formApi: <Map<String, dynamic>>[]
        });

        if (formDetails[i][ConstantName.groupBy] != null) {
          derived2
              .putIfAbsent(formDetails[i][ConstantName.groupBy],
                  () => <Map<String, dynamic>>[])
              .add(formDetails[i]);
        }
      }
      // print('derived:<1> $derived');
    }
  }

  // --> Next process
  if (jsonResponse.containsKey(ConstantName.formDependable)) {
    addDataToDerived(
        data: List<Map<String, dynamic>>.from(
            jsonResponse[ConstantName.formDependable]),
        matchKey: ConstantName.columnID,
        nestedKey: ConstantName.formDependable,
        derived: derived2);
  }

  // --> Next process
  if (jsonResponse.containsKey(ConstantName.formApi)) {
    addDataToDerived(
        data: List<Map<String, dynamic>>.from(
            jsonResponse[ConstantName.formApi]),
        matchKey: ConstantName.columnID,
        nestedKey: ConstantName.formApi,
        derived: derived2);
  }

  // print('derived:<2> $derived');
  // print('derived:<2> ${derived.values.elementAt(derived.length - 2)}');

  return derived2;
}