establecerParametrosConsulta method

Future<({List<List<String>> argsLocalBD, int limit, PaginadoModel paginacionModel, Map<String, dynamic> params, int skipActual})> establecerParametrosConsulta({
  1. required Map<String, dynamic> esquema,
  2. required Map<String, dynamic> paramsConsulta,
  3. required AvanPage avanPage,
  4. required PaginadoModel paginado,
  5. required bool soloColeccionesOrigen,
  6. required OperadorLogicoMongo operador,
  7. bool propertyInArrayObject = false,
  8. String origenColeccion = '',
})

Implementation

Future<
        ({
          Map<String, dynamic> params,
          int limit,
          PaginadoModel paginacionModel,
          int skipActual,
          List<List<String>> argsLocalBD,
        })>
    establecerParametrosConsulta(
        {required Map<String, dynamic> esquema,
        required Map<String, dynamic> paramsConsulta,
        required AvanPage avanPage,
        required PaginadoModel paginado,
        required bool soloColeccionesOrigen,
        required OperadorLogicoMongo operador,
        bool propertyInArrayObject = false,
        String origenColeccion = ''}) async {
  Map<String, dynamic> paramEvent = {
    ...paramsConsulta,
    if (soloColeccionesOrigen)
      EnvironmentApiRest.coleccionAuth: origenColeccion
  };
  final limit = int.tryParse('${paramEvent['limit']}') ?? 25;
  final skip = int.tryParse('${paramEvent['skip']}') ?? paginado.skip;
  final totalItems =
      int.tryParse('${paramEvent['totalItems']}') ?? paginado.totalItems;

  paramEvent.removeWhere(
      (key, value) => key == 'limit' || key == 'skip' || key == 'totalItems');
  final Map<String, dynamic> params = {
    ...await _procesaParametrosConsulta(
        operador: operador,
        params: {...paramEvent},
        esquema: esquema,
        propertyInArrayObject: propertyInArrayObject)
  };

  final skipActual = FlutterUtilsProvider.determinaSkipActual(
      avanPage: avanPage,
      skipActual: skip,
      limit: limit,
      totalItems: totalItems);

  final List<List<String>> argsLocalBD = params['argsLocalBD'];

  return (
    params: params,
    limit: limit,
    paginacionModel: paginado,
    skipActual: skipActual,
    argsLocalBD: argsLocalBD
  );
}