addRequest method
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;
}