onResponse method

  1. @override
void onResponse(
  1. Response response,
  2. ResponseInterceptorHandler handler
)

Handles API response interception

@param response The API response @param handler The interceptor handler

Implementation

@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
  if (DevUILogger.instance.isLogEnabled == true) {
    try {
      final mockApi = DevUILogger.instance
          .getMockApi(response.requestOptions.uri.toString());
      if (mockApi?.type == MockType.response) {
        response.data = mockApi?.mockResponse;
        response.statusCode = 200;
      }
      DevUILogger.instance.completeRequest(
        CompleteRequestParams(
          key: response.requestOptions,
          responseData: response.data,
          responseHeader: response.headers.map,
          requestContentLength: int.tryParse(
            response.requestOptions.headers['content-length']?.toString() ??
                '',
          ),
          responseContentLength: int.tryParse(
            response.headers['content-length']?.firstOrNull?.toString() ?? '',
          ),
          httpCode: response.statusCode,
        ),
      );
    } catch (e, stack) {
      Completer().completeError(e, stack);
    } finally {
      DevUILogger.instance.removeRequestModel(response.requestOptions);
    }
  }
  return handler.next(response);
}