completeRequest method
void
completeRequest(
- Response response
Completes a request with a Response and notifies listeners.
Implementation
void completeRequest(Response response) {
if (!isLogEnabled) return;
final requestModel = getRequestModel(response.requestOptions);
requestModel?.response = response.data;
requestModel?.endTime = DateTime.now().millisecondsSinceEpoch;
requestModel?.responseHeader = response.headers.map;
requestModel?.requestContentLength = int.tryParse(
response.requestOptions.headers['content-length']?.toString() ?? '');
requestModel?.responseContentLength = int.tryParse(
response.headers['content-length']?.firstOrNull?.toString() ?? '');
requestModel?.httpCode = response.statusCode;
_logCurl(requestModel!);
requestModel.endTime = DateTime.now().millisecondsSinceEpoch;
requestModel.responseTime =
(requestModel.endTime ?? 0) - (requestModel.startTime ?? 0);
// requestModel.responseContentLength =calcContentLength(headers)
try {
final json = StringUtils.convertStringToObject(requestModel.response);
requestModel.isSuccess ??= valueFromResponse.checkApiSuccess
?.call(json, url: requestModel.url) ??
true;
final errorCode = valueFromResponse.getErrorCode?.call(json);
if (isNotNullOrEmpty(errorCode)) {
requestModel.responseCodeTitle = errorCode!.key;
requestModel.responseCode = errorCode.value;
}
if (requestModel.isSuccess == false) {
requestModel.message ??=
valueFromResponse.getErrorMessage?.call(json) ?? "";
}
} catch (e, s) {
Completer().completeError(e, s);
} finally {
fireEvent();
mapsRequest.removeWhere(
(key, value) => value == requestModel,
);
}
}