addPredicate static method
dynamic
addPredicate(
- dynamic query,
- dynamic field,
- dynamic operation,
- dynamic values, {
- dynamic invert = false,
- 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;
}