addPredicate static method

dynamic addPredicate(
  1. dynamic query,
  2. dynamic field,
  3. dynamic operation,
  4. dynamic values, {
  5. dynamic invert = false,
  6. dynamic group = '',
})

Implementation

static addPredicate(query, field, operation, values,
    {invert = false, group = ''}) {
  if (group == null) group = '';
  if (operation == QueryTypes.conseilOperator['BETWEEN'] &&
      values.length != 2) {
    throw new Exception('BETWEEN operation requires a list of two values.');
  } else if (operation == QueryTypes.conseilOperator['IN'] &&
      values.length < 2) {
    throw new Exception(
        'IN operation requires a list of two or more values.');
  } else if (values.length != 1 &&
      operation != QueryTypes.conseilOperator['IN'] &&
      operation != QueryTypes.conseilOperator['BETWEEN'] &&
      operation != QueryTypes.conseilOperator['ISNULL']) {
    throw new Exception('invalid values list for $operation.');
  }
  var q = query;
  q['predicates'].add({
    'field': field,
    'operation': operation ?? '',
    'set': values,
    'inverse': invert,
    'group': group ?? '',
  });
  return q;
}