handle method

dynamic handle(
  1. HttpRequest req
)

Implementation

dynamic handle(HttpRequest req) async {
  try {
    // preflight
    if (req.method == 'OPTIONS') {
      req.response.statusCode = HttpStatus.ok;
      return req.response.close();
    }

    RouteData? route = getMatchRoute(req.uri.path, req.method);
    if (route == null) {
      return _routeNotFound(req);
    }
    var doxReq = await DoxRequest.httpRequestToDoxRequest(req, route);

    // if controller is a Function
    if (route.controllers is Function) {
      return await _handleController(route.controllers, doxReq, req);
    }

    // if list controller
    if (route.controllers is List) {
      return await _handleListController(route, doxReq, req);
    }

    return RouterResponse.send(route.controllers, req);
  } catch (error) {
    req.response.write(error.toString());
    req.response.close();
    print(error);
  }
}