obtenerDataBloc method

Future<({List<Map<String, dynamic>> lstData, Map<String, dynamic> rtaConsultaApi})> obtenerDataBloc({
  1. required Map<String, dynamic> esquema,
  2. required Map<String, dynamic> params,
  3. required List<List<String>> argsLocalBD,
  4. required int skipActual,
  5. required int limit,
  6. required String coleccion,
  7. bool propertyInArrayObject = false,
  8. String? ordenar,
})

Implementation

Future<
    ({
      Map<String, dynamic> rtaConsultaApi,
      List<Map<String, dynamic>> lstData,
    })> obtenerDataBloc({
  required Map<String, dynamic> esquema,
  required Map<String, dynamic> params,
  required List<List<String>> argsLocalBD,
  required int skipActual,
  required int limit,
  required String coleccion,
  bool propertyInArrayObject = false,
  String? ordenar,
}) async {
  Map<String, Map<String, dynamic>> lstCamposConDataAdicional = {
    ...FlutterUtilsProvider.obtenerCamposConDataAdicional(
        esquema: esquema, propertyInArrayObject: propertyInArrayObject)
  };
  List<Map<String, dynamic>> subConsultas =
      tokenizaConcatenacion(lstCamposConDataAdicional, esquema);
  final rtaConsultaApi = await obtenerData<ColeccionObjBox>(
    coleccion: coleccion,
    consulta: params['consulta'],
    project: _camposAMostrarEnTabla(subConsultas, esquema),
    argsLocalBD: [...argsLocalBD],
    concatenar: subConsultas.isNotEmpty ? jsonEncode(subConsultas) : null,
    skip: skipActual.toString(),
    limit: limit.toString(),
    ordenar: ordenar,
  );
  if (rtaConsultaApi.containsKey(EnvironmentApiRest.dataNOk)) {
    throw rtaConsultaApi[EnvironmentApiRest.error];
  }
  final List<Map<String, dynamic>> lstData =
      (rtaConsultaApi[EnvironmentApiRest.data].length > 0)
          ? [...rtaConsultaApi[EnvironmentApiRest.data]]
          : [];

  return (rtaConsultaApi: rtaConsultaApi, lstData: lstData);
}