documentsByQuery method
Get a list documents based on a query.
The query
string uses the RSQL query language for RESTful APIs.
See the RSQL Documentation.
Can only be accessed by users who are authenticated as researchers.
Implementation
Future<List<DocumentSnapshot>> documentsByQuery(
String query, {
String? studyId,
}) async {
// GET the list of documents in this collection from the CARP web service
http.Response response = await httpr.get(
Uri.encodeFull('${getDocumentEndpointUri(studyId)}?query=$query'),
headers: headers);
int httpStatusCode = response.statusCode;
if (httpStatusCode == HttpStatus.ok) {
List<dynamic> documentsJson = json.decode(response.body) as List<dynamic>;
List<DocumentSnapshot> documents = [];
for (var item in documentsJson) {
Map<String, dynamic> documentJson = item as Map<String, dynamic>;
String key = documentJson["name"].toString();
documents.add(DocumentSnapshot._(key, documentJson));
}
return documents;
}
// All other cases are treated as an error.
Map<String, dynamic> responseJson =
json.decode(response.body) as Map<String, dynamic>;
throw CarpServiceException.fromMap(httpStatusCode, responseJson);
}