onResponse method
Called when the response is about to be resolved.
Implementation
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
if (ApiLogger.instance.isLogEnabled == true) {
try {
RequestModel? requestModel;
requestModel =
ApiLogger.instance.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;
if (isNotNullOrEmpty(requestModel)) {
ApiLogger.instance.completeRequest(requestModel!);
}
final mockApi = ApiLogger.instance
.getMockApi(response.requestOptions.uri.toString());
if (mockApi?.type == MockType.response) {
response.data = mockApi?.mockResponse;
response.statusCode = 200;
}
} catch (e, stack) {
Completer().completeError(e, stack);
} finally {
ApiLogger.instance.removeRequestModel(response.requestOptions);
}
}
return handler.next(response);
}