httpRequestToDoxRequest static method

Future<DoxRequest> httpRequestToDoxRequest(
  1. HttpRequest request,
  2. RouteData route
)

we are not using constructor here because we need to call async to read body data

Implementation

static Future<DoxRequest> httpRequestToDoxRequest(
  HttpRequest request,
  RouteData route,
) async {
  DoxRequest i = DoxRequest(request);
  i.param = route.params;
  i.method = route.method.toUpperCase();
  i.query = request.uri.queryParameters;

  if (i.isJson()) {
    String bodyString = await utf8.decoder.bind(request).join();
    i.body = jsonDecode(bodyString);
  }

  if (i.isFormData()) {
    FormDataVisitor visitor = FormDataVisitor(request);
    await visitor.process();
    i.body = visitor.inputs;
  }

  i._allRequest = <String, dynamic>{...i.query, ...i.body};
  i._getCookies();
  return i;
}