onNext method

  1. @override
Future<RowResponse> onNext(
  1. RowResponse row,
  2. Middleware<RowResponse> nextMiddleware
)
override

Override this method and implement your custom logic inside it. After call await nextMiddleware.next(row) to run the next middleware in the chain.

Implementation

@override
Future<RowResponse> onNext(RowResponse row,
    Middleware<RowResponse> nextMiddleware) async {
  log('');
  logDivider();

  tabbedLog('← RESPONSE ←');

  if (logParts.contains(LogParts.url)) {
    final request = row.request;
    _logUrl(request.method, request.url);
  }

  if (logParts.contains(LogParts.code)) {
    final code = row.code;
    if (code != null) {
      tabbedLog('CODE: $code');
    }
  }

  if (logParts.contains(LogParts.headers)) {
    _logHeaders(row.headers ?? {});
  }

  if (logParts.contains(LogParts.body)) {
    String? textBody;
    try {
      textBody = utf8.decode(row.bodyBytes!);
    } on Exception {
      //ignore
    }
    _logBody(textBody ?? row.bodyBytes);
  }

  logDivider();

  return await nextMiddleware.next(row);
}