buildUri function

Uri buildUri(
  1. String baseUrl,
  2. String url,
  3. Map<String, dynamic> parameters
)

Builds a valid URI from baseUrl, url and parameters.

If url starts with 'http://' or 'https://', baseUrl is ignored.

Implementation

Uri buildUri(String baseUrl, String url, Map<String, dynamic> parameters) {
  var uri;
  if (url.startsWith('http://') || url.startsWith('https://')) {
    // If the request's url is already a fully qualified URL, we can use it
    // as-is and ignore the baseUrl.
    uri = Uri.parse(url);
  } else {
    if (!baseUrl.endsWith('/') && !url.startsWith('/')) {
      uri = Uri.parse('$baseUrl/$url');
    } else {
      uri = Uri.parse('$baseUrl$url');
    }
  }

  var query = mapToQuery(parameters);
  if (query.isNotEmpty) {
    if (uri.hasQuery) {
      query += '&${uri.query}';
    }
    return uri.replace(query: query);
  }
  return uri;
}