Skip to content

Commit f0a6e4f

Browse files
committed
feat(dart): fix URL construction
1 parent 812b937 commit f0a6e4f

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

clients/algoliasearch-client-dart/packages/chopper_requester/lib/src/chopper_requester.dart

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,9 @@ class ChopperRequester implements Requester {
7979
Future<Response<Map<String, dynamic>>> execute(HttpRequest request) async {
8080
final Request chopperRequest = Request(
8181
request.method,
82-
Uri(
83-
scheme: request.host.scheme,
84-
host: request.host.url,
85-
port: request.host.port,
86-
path: request.path,
87-
),
82+
requestUri(request),
8883
_client.baseUrl,
8984
body: request.body,
90-
parameters: request.queryParameters,
9185
headers: {
9286
for (final MapEntry<String, dynamic> entry
9387
in request.headers?.entries ?? const {})
@@ -105,6 +99,22 @@ class ChopperRequester implements Requester {
10599
};
106100
}
107101

102+
/// Constructs the request URI from the [request] details.
103+
Uri requestUri(HttpRequest request) {
104+
Uri uri = Uri(
105+
scheme: request.host.scheme,
106+
host: request.host.url,
107+
port: request.host.port,
108+
path: request.path,
109+
);
110+
111+
return request.queryParameters.isNotEmpty
112+
? Uri.dataFromString(
113+
"$uri?${request.queryParameters.entries.map((e) => "${e.key}=${e.value}").join("&")}",
114+
)
115+
: uri;
116+
}
117+
108118
@override
109119
void close() => _client.dispose();
110120
}

0 commit comments

Comments
 (0)