getData method
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;
}