queryDocuments method

Future<List<Document>> queryDocuments({
  1. required String keywords,
  2. String searchWith = 'es',
  3. String? createdFrom,
  4. int? dashboardId,
  5. int includeTexts = 0,
  6. String order = 'score',
  7. int page = 1,
})

Search for documents.

  • keywords - search query, required!
  • searchWith - type of search, es - fulltext or sql - keywords in document names, default es
  • createdFrom - search only documents created AFTER this date
  • dashboardId - specifies dashboard id, empty means search everywhere
  • includeTexts - set 1 to include parsed texts, default 0
  • order - results ordering, date or score, default score
  • page - pagination, every page has 200 documents, default 1

Throws EdeskyClientException when response status code is not 200.

Implementation

Future<List<Document>> queryDocuments({
  required String keywords,
  String searchWith = 'es',
  String? createdFrom,
  int? dashboardId,
  int includeTexts = 0,
  String order = 'score',
  int page = 1,
}) async {
  final params = <String, String?>{
    'keywords': keywords,
    'search_with': searchWith,
    'created_from': createdFrom,
    'dashboard_id': dashboardId?.toString(),
    'include_texts': includeTexts.toString(),
    'order': order,
    'page': page.toString(),
  };
  final response = await _queryGet(_createUrl('documents', params));

  return XmlDocument.parse(utf8.decode(response.bodyBytes))
      .findAllElements('document')
      .map((d) => Document.fromXML(d))
      .toList();
}