genericSelectGenerator function
Generic select generator that mimics the React version
Implementation
Future<dynamic> genericSelectGenerator({
required String dbApiUrl,
required String selectName,
dynamic filter,
Map<String, dynamic>? dbFilter,
bool showDescription = false,
List<dynamic> descriptionFields = const ["name"],
}) async {
if (SelectCache.has(selectName)) {
if (gceSelDebug) {
logDebug('>> genericSelectGenerator | Using cache for: $selectName');
}
return _processRows(
SelectCache.get(selectName),
filter: filter,
showDescription: showDescription,
descriptionFields: descriptionFields,
);
}
HttpUtilities api = HttpUtilities();
Map<String, dynamic> accessKeysListing = {};
if (dbFilter != null) {
accessKeysListing.addAll(dbFilter);
}
try {
final response = await api.httpsCall(
'GET',
dbApiUrl,
{},
{},
accessKeysListing,
);
if (response['error'] == true) {
return response['error_message'];
}
final data = response['resultset'] ?? [];
SelectCache.put(selectName, data);
return _processRows(
data,
filter: filter,
showDescription: showDescription,
descriptionFields: descriptionFields,
);
} catch (e) {
logErrorRaw('genericSelectGenerator | error: $e');
return e.toString();
}
}