find method

Implementation

Future<LCSearchResponse<T>> find() async {
  String path = 'search/select';
  Map<String, dynamic> queryParams = {
    'clazz': className,
    'limit': _limit,
    'skip': _skip
  };
  if (_queryString != null) {
    queryParams['q'] = _queryString;
  }
  if (_highlights != null && _highlights!.length > 0) {
    queryParams['highlights'] = _highlights!.join(',');
  }
  if (_includeKeys != null && _includeKeys!.length > 0) {
    queryParams['include'] = _includeKeys!.join(',');
  }
  if (_sid != null) {
    queryParams['sid'] = _sid;
  }
  if (_orders != null && _orders!.length > 0) {
    queryParams['order'] = _orders!.join(',');
  }
  if (_sortBuilder != null) {
    queryParams['sort'] = _sortBuilder!._build();
  }

  Map response = await LeanCloud._httpClient
      .get(path, queryParams: queryParams);
  LCSearchResponse<T> ret = new LCSearchResponse<T>();
  ret.hits = response['hits'];
  ret.sid = response['sid'];
  ret.results = <T>[];
  List results = response['results'];
  results.forEach((item) {
    _LCObjectData objectData = _LCObjectData.decode(item);
    T object = LCObject._create<T>(className);
    object._merge(objectData);
    ret.results!.add(object);
  });
  return ret;
}