completeRequest method
Completes a request with CompleteRequestParams and notifies listeners.
Implementation
void completeRequest(CompleteRequestParams params) {
if (!isLogEnabled) return;
final requestModel = getRequestModel(params.key);
requestModel?.response = params.responseData;
requestModel?.responseHeader = params.responseHeader;
requestModel?.requestContentLength = params.requestContentLength;
requestModel?.responseContentLength = params.responseContentLength;
requestModel?.httpCode = params.httpCode;
requestModel!.endTime = DateTime.now().millisecondsSinceEpoch;
requestModel.responseTime =
(requestModel.endTime ?? 0) - (requestModel.startTime ?? 0);
try {
final json = StringUtils.convertStringToObject(requestModel.response);
requestModel.isSuccess ??= valueFromResponse.checkApiSuccess?.call(json,
url: requestModel.url, httpCode: requestModel.httpCode) ??
true;
final errorCode = valueFromResponse.getErrorCode?.call(json,
url: requestModel.url, httpCode: requestModel.httpCode);
if (isNotNullOrEmpty(errorCode)) {
requestModel.responseCodeTitle = errorCode!.key;
requestModel.responseCode = errorCode.value;
}
if (requestModel.isSuccess == false) {
requestModel.message ??=
valueFromResponse.getErrorMessage?.call(json,
url: requestModel.url, httpCode: requestModel.httpCode) ??
"";
}
_logResponse(requestModel);
} catch (e, s) {
Completer().completeError(e, s);
} finally {
fireEvent();
mapsRequest.removeWhere(
(key, value) => value == requestModel,
);
}
}