addRequest method

dynamic addRequest(
  1. RequestModel requestModel,
  2. dynamic key
)

Adds a new request model and notifies listeners.

Implementation

dynamic addRequest(RequestModel requestModel, dynamic key) {
  key ??= getNextId();
  if (!isLogEnabled || models.contains(requestModel)) return;
  if (isNotNullOrEmpty(requestModel.url)) {
    String url = StringUtils.getBaseUrlAndPath(requestModel.url);
    requestModel.mockApi = _getMockApi?.call(url);
  }
  mapsRequest[key] = requestModel;
  models.insert(0, requestModel);
  StringBuffer stringBuffer = StringBuffer();
  stringBuffer.writeln(
      '$markerLog Request for $markerLog : [Method - ${key.method.toUpperCase()}] ${requestModel.url}');
  if (apiLogConfig.queryParams) {
    _writeToBuffer(stringBuffer, 'Query Params', key.uri.queryParameters);
  }
  if (apiLogConfig.requestHeader) {
    _writeToBuffer(stringBuffer, 'Request Header', key.headers);
  }
  if (apiLogConfig.requestBody) {
    _writeToBuffer(stringBuffer, 'Request Body', key.data);
  }
  if (apiLogConfig.curl) {
    _writeToBuffer(stringBuffer, 'Curl', requestModel.curl);
  }
  stringBuffer.writeln(
      '$kConsoleGreen$markerLog Request $markerLog : ${requestModel.url}$kConsoleReset');
  if (apiLogConfig.isLogRequest()) {
    logDebug(stringBuffer.toString());
  }
  fireEvent();
  return key;
}