WebRequest.request constructor

WebRequest.request(
  1. String route, {
  2. Map<String, String>? data,
  3. Map<String, String>? queryParameters,
  4. Object? arguments,
})

from Request path

Implementation

factory WebRequest.request(
  String route, {
  Map<String, String>? data,
  Map<String, String>? queryParameters,
  Object? arguments,
}) {
  // build uri
  List<String> paths = [];
  route.split('/').forEach((path) {
    if (path.isNotEmpty) {
      if (data == null || data.length == 0) {
        paths.add(path);
      } else {
        final match = RegExp(r'^\{(.+)\}$').firstMatch(path);
        if (match != null && match.groupCount > 0) {
          final name = match.group(1);
          assert(data[name] != null);
          paths.add(data[name]!);
        } else {
          paths.add(path);
        }
      }
    }
  });

  final uri = Uri(
    path: '/' + paths.join('/'),
    queryParameters: queryParameters,
  );

  return WebRequest._(
    settings: RouteSettings(
      name: uri.toString(),
      arguments: arguments,
    ),
    route: route,
    data: data,
  );
}