queryStatements method
Fetch a set of statements
Implementation
@override
Future<LRSResponse<StatementsResult>> queryStatements(
StatementsQuery query) async {
final response = await _makeRequest('statements', 'GET',
queryParams: query.toParameterMap(_version));
dynamic responseBody;
if (response.runtimeType.toString() == 'StreamedResponse') {
http.StreamedResponse streamedResponse = response;
final data = await streamedResponse.stream.bytesToString();
responseBody = data;
} else {
responseBody = response?.body;
}
//print('Response : $responseBody');
if (response?.statusCode == 200) {
if (response.headers[contentTypeHeader]?.startsWith('multipart/mixed;') ==
true) {
// Parse mixed data
final contentType = response.headers[contentTypeHeader];
//print(contentType);
//print(response.body);
final boundary = contentType.split('boundary=')[1];
//print('boundary - $boundary');
final statement =
Statement.fromMixedMultipart(boundary, response.bodyBytes);
return LRSResponse<StatementsResult>(
success: true,
data: StatementsResult(
statements: statement,
),
);
} else {
final decoded = json.decode(responseBody);
return LRSResponse<StatementsResult>(
success: true,
data: StatementsResult.fromJson(decoded),
);
}
} else {
return LRSResponse<StatementsResult>(
success: false, errMsg: response?.body);
}
}