execute method

Future<Map<String, List<Map<String, Object?>?>?>?> execute(
  1. String query, {
  2. Map<String, Object?>? params,
  3. bool isCache = false,
  4. bool formatJson = false,
})

Implementation

Future<Map<String, List<Map<String, Object?>?>?>?> execute(String query,
    {Map<String, Object?>? params,
    bool isCache = false,
    bool formatJson = false}) async {
  params ??= {};
  params.addAll({
    fieldPageNumber: _currentPage,
    fieldOrderByField: orderByField,
    fieldOrderByAsc: orderByASC,
  });

  if (rowsOfPage > 0) {
    params.addAll({
      fieldRowsOfPage: rowsOfPage,
    });
  }
  mapCondition.forEach((key, value) {
    if (value != null && value is RangeValue) {
      final giaRangeValue = value;
      params?.update(
        '${key}Min',
        (_) => giaRangeValue.start,
        ifAbsent: () => giaRangeValue.start,
      );
      params?.update(
        '${key}Max',
        (_) => giaRangeValue.end,
        ifAbsent: () => giaRangeValue.end,
      );
    } else {
      params?.update(key, (_) => value, ifAbsent: () => value);
    }
  });

  if (kDebugMode) {
    print('query: $query');
    print('params: $params');
  }

  final data = await SQLService.execute(query,
      params: params, isCache: isCache, formatJson: formatJson);

  String? displayTable = getFilterFieldName(data);
  if (displayTable == null) {
    _hasNextPage = false;
  } else if (data[displayTable]?.isEmpty ?? true) {
    _hasNextPage = false;
  }

  if (currentPage == 1) {
    tempData.clear();
    tempData.addEntries(data.entries);
  }

  return data;
}