constructUri method

Uri constructUri(
  1. Map<String, dynamic> queryParameters,
  2. String url
)

Utility method to construct dio.Dio queries

Implementation

Uri constructUri(Map<String, dynamic> queryParameters, String url) {
  final finalUrl = url;

  if (queryParameters.isEmpty) {
    return Uri.parse((baseUrl ?? '') + finalUrl);
  }

  final correctedMap = {
    for (final value in queryParameters.keys)
      value.toString(): queryParameters[value] is List
          ? queryParameters[value].map((value) => value?.toString())
          : queryParameters[value]?.toString(),
  };

  final uri = Uri.parse((baseUrl ?? '') + finalUrl);

  final resultUri = Uri(
    scheme: uri.scheme,
    host: uri.host,
    path: uri.path.substring(1),
    queryParameters: correctedMap.isEmpty ? null : correctedMap,
  );

  return resultUri;
}