generateSummary static method

String generateSummary(
  1. DebugModel model, {
  2. bool redact = true,
})

Readable summary of the request and response (for bug reports).

Implementation

static String generateSummary(DebugModel model, {bool redact = true}) {
  final buffer = StringBuffer()
    ..writeln(
      '${model.httpMethod} ${redact ? Redaction.url(model.url) : model.url}',
    )
    ..writeln('Status : ${model.statusCode} (${model.statusLabel})')
    ..writeln('Time   : ${model.requestTimeString}')
    ..writeln('Took   : ${model.elapsedTimeInMs}')
    ..writeln(
      'Size   : ↑ ${model.requestSizeLabel} · ↓ ${model.responseSizeLabel}',
    )
    ..writeln()
    ..writeln('--- Request headers ---')
    ..writeln(LogFormatter.pretty(model.requestHeadersView(redact: redact)));

  if (model.hasRequestData) {
    buffer
      ..writeln()
      ..writeln('--- Request body ---')
      ..writeln(
        LogFormatter.pretty(
          redact ? Redaction.redact(model.requestData) : model.requestData,
        ),
      );
  }

  if (model.hasError) {
    buffer
      ..writeln()
      ..writeln('--- Error ---')
      ..writeln(model.errorStatusMessage);
    final underlying = model.underlyingError;
    if (underlying != null) buffer.writeln(underlying);
  }

  if (model.hasResponseData) {
    buffer
      ..writeln()
      ..writeln('--- Response body ---')
      ..writeln(
        LogFormatter.pretty(
          redact ? Redaction.redact(model.responseData) : model.responseData,
        ),
      );
  }

  return buffer.toString();
}