completeRequest method

void completeRequest(
  1. CompleteRequestParams params
)

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,
    );
  }
}