build method
Build the query string for URL parameters
Implementation
String build() {
List<String> params = [];
// Add regular filters (AND conditions)
_filters.forEach((key, value) {
params.add('$key=${Uri.encodeComponent(value.toString())}');
});
// Add simple OR conditions [or]field=value
for (var condition in _orConditions) {
condition.forEach((key, value) {
params.add('[or]$key=${Uri.encodeComponent(value.toString())}');
});
}
// Add named OR groups [or:groupname]field=value
_namedOrGroups.forEach((groupName, conditions) {
for (var condition in conditions) {
condition.forEach((key, value) {
params.add(
'[or:$groupName]$key=${Uri.encodeComponent(value.toString())}',
);
});
}
});
// Add populate parameters
for (var field in _populate) {
params.add('populate=${Uri.encodeComponent(field)}');
}
// Add select parameters
for (var field in _select) {
params.add('select=${Uri.encodeComponent(field)}');
}
// Add sorting
if (_sortBy != null) {
params.add('sort_by=${Uri.encodeComponent(_sortBy!)}');
if (_order != null) {
params.add('order=$_order');
}
}
// Add pagination
if (_limit != null) {
params.add('limit=$_limit');
}
if (_offset != null) {
params.add('offset=$_offset');
}
return params.join('&');
}