sendError method

void sendError(
  1. HttpRequest request,
  2. int status,
  3. String title_,
  4. dynamic e,
)

Implementation

void sendError(HttpRequest request, int status, String title_, e) {
  var doc = html(lang: 'en', c: [
    head(c: [
      meta(name: 'viewport', content: 'width=device-width, initial-scale=1'),
      title(c: [text(title_)])
    ]),
    body(c: [
      h1(c: [text(title_)]),
      i(c: [text(e.toString())])
    ])
  ]);

  var response = request.response;
  response.statusCode = HttpStatus.badGateway;
  response.headers
    ..contentType = ContentType.html
    ..set(HttpHeaders.serverHeader, 'angel3');

  if (request.headers
          .value(HttpHeaders.acceptEncodingHeader)
          ?.toLowerCase()
          .contains('gzip') ==
      true) {
    response
      ..headers.set(HttpHeaders.contentEncodingHeader, 'gzip')
      ..add(gzip.encode(utf8.encode(_renderer.render(doc))));
  } else {
    response.write(_renderer.render(doc));
  }
  response.close();
}