getData method

Future getData(
  1. Map<String, String>? paramsPassed, {
  2. String? path,
  3. Map<String, String>? additionalParams,
})

Implementation

Future<dynamic> getData(Map<String, String>? paramsPassed,
    {String? path, Map<String, String>? additionalParams}) async {
  dynamic data = null;

  Map<String, String>? trimmedParams =
      paramsPassed?.map((key, value) => MapEntry(key.trim(), value.trim()));

  if (type == "custom-json") {
    data = json;
  } else if (type == "model-collection") {
    // dynamic data =
    //     await IvivaAccount().executeServiceBatch('Lucy', 'Aggregate', {
    //   "modelName": model ?? "",
    //   "collectionName": action ?? "",
    //   "stages": "[]",
    // });

    data = await DataSourceRepository().getData(
      type,
      id,
      model,
      action,
      null,
      enableCache: enableCache,
    );

    data = jsonDecode(data[0]["data"]);
  } else if (type == null || type == "model-action") {
    Map<String, String> paramsEx = {};
    //lmLog(id);
    for (var i = 0; i < (parameters?.length ?? 0); i++) {
      try {
        String value = parameters?[i]['value'] ?? "";
        //lmLog(" value - " + value);
        if (value == "") {
          //lmLog(" value is blank ");
          continue;
        }

        value = await replaceStringJsonPathAsync(
            value,
            {
              'param': trimmedParams, //for backward compat - don't use!
              'params': trimmedParams
            },
            localized: false);
        paramsEx[parameters?[i]['id'] ?? ""] = value;
        //lmLog(value);
      } catch (e) {
        lmLog("error - " + e.toString());
      }
    }
    if (additionalParams != null) {
      paramsEx.addAll(additionalParams);
    }

    data = await DataSourceRepository().getData(
      type,
      id,
      model,
      action,
      paramsEx,
      enableCache: enableCache,
    );

    //print(" DataSourceRepository().getData $id " + data.toString());
  }

  // Select the field using json path
  if (!(path == null || path.isEmpty)) {
    try {
      data = JsonPath(path).read(data).first.value;
    } on StateError {
      data = null;
    }
  }

  return data;
}