getQueryParameterFromUrl static method

Map<String, dynamic>? getQueryParameterFromUrl(
  1. String url
)

Fetches the query parameter from the given url. Returns null if none exist.

Implementation

static Map<String, dynamic>? getQueryParameterFromUrl(String url) {
  var queryParameters = <String, dynamic>{};
  var splitted = url.split('?');
  if (splitted.length != 2) {
    return null;
  }
  var query = splitted.elementAt(1);

  var splittedQuery = query.split('&');
  splittedQuery.forEach((String q) {
    var pair = q.split('=');
    var key = Uri.decodeFull(pair[0]);
    var value = '';
    if (pair.length > 1) {
      value = Uri.decodeFull(pair[1]);
    }

    if (key.contains('[]')) {
      if (queryParameters.containsKey(key)) {
        List<dynamic> values = queryParameters[key];
        values.add(value);
      } else {
        var values = [];
        values.add(value);
        queryParameters.putIfAbsent(key, () => values);
      }
    } else {
      if (queryParameters.containsKey(key)) {
        queryParameters.update(key, (value) => value);
      } else {
        queryParameters.putIfAbsent(key, () => value);
      }
    }
  });
  if (queryParameters.isEmpty) {
    return null;
  } else {
    return queryParameters;
  }
}