getStatusCode method
Returns a BleStatusCode object that contains the int status code of the response
Implementation
BleStatusCode getStatusCode(Uint8List codes) {
LogbotLogger()
.simple("ApiClient.getStatusCodes() originalCodesValues=$codes");
Uint8List statusCodeSubList = codes.sublist(0, 2);
ByteData byteData = ByteData.sublistView(statusCodeSubList);
int statusCode = byteData.getUint16(0, Endian.little);
LogbotLogger().simple("ApiClient.getStatusCodes() statusCode=$statusCode");
/// Procedure to check if the result is or not. Is not valid
/// if the result is truncated
Uint8List dataStatusBitField = codes.sublist(2, 3);
/// Data Status bit field:
/// 5: BOTH BODY AND HEADERS RECEIVED SUCCESSFULLY,
/// 6: BODY RECEIVED SUCCESSFULLY,
/// 9: HEADERS RECEIVED SUCCESSFULLY,
/// 10: BODY AND HEADERS TRUNCATED
int dataStatus =
int.parse(dataStatusBitField.first.toRadixString(2), radix: 2);
final int httpSuccessStatus = int.parse('0101', radix: 2);
final int httpHeaderTruncated = int.parse('1000', radix: 2);
final int httpBodyTruncated = int.parse('0010', radix: 2);
/// CHECK TRUNCATION
bool isValid = dataStatus & httpSuccessStatus != 0;
bool isHeadersTruncated = dataStatus & httpBodyTruncated != 0;
bool isBodyTruncated = dataStatus & httpHeaderTruncated != 0;
LogbotLogger()
.simple("ApiClient.getStatusCodes() int=$int; isValid=$isValid");
return BleStatusCode(
statusCode: statusCode,
isValid: isValid && !isBodyTruncated && !isHeadersTruncated,
isBodyTruncated: isBodyTruncated,
isHeadersTruncated: isHeadersTruncated,
);
}