build method

String build()

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('&');
}