Skip to content

Commit e6c611d

Browse files
authored
Merge pull request #257 from Sprokof/params-accept-array-string
Params accept array string
2 parents 68a3c58 + f49c3bf commit e6c611d

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/main/java/com/amadeus/Params.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.UnsupportedEncodingException;
44
import java.net.URLEncoder;
55
import java.util.HashMap;
6+
import java.util.List;
67
import java.util.Map;
78
import java.util.logging.Level;
89
import java.util.logging.Logger;
@@ -48,7 +49,12 @@ public static Params with(@NonNull String key, Object value) {
4849
* @return the Param object, allowing for convenient chaining
4950
*/
5051
public Params and(@NonNull String key, Object value) {
51-
put(key, String.valueOf(value));
52+
if (value instanceof List) {
53+
@SuppressWarnings("unchecked") List<String> values = (List<String>) value;
54+
put(key, String.join(",", values));
55+
} else {
56+
put(key, String.valueOf(value));
57+
}
5258
return this;
5359
}
5460

src/test/java/com/amadeus/ParamsTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static org.junit.jupiter.api.Assertions.assertEquals;
44
import static org.junit.jupiter.api.Assertions.assertThrows;
55

6+
import java.util.Arrays;
67
import org.junit.jupiter.api.Test;
78

89
public class ParamsTest {
@@ -22,6 +23,11 @@ public class ParamsTest {
2223
assertEquals(params.toQueryString(), "bar=234&foo=123");
2324
}
2425

26+
@Test public void testToQueryStringWithList() {
27+
Params params = Params.with("foo", Arrays.asList("id1", "id2"));
28+
assertEquals(params.toQueryString(), "foo=id1%2Cid2");
29+
}
30+
2531
@Test public void testToQueryStringWithEncodingError() {
2632
Params params = Params.with("foo", "123");
2733
params.encoding = "foobar";

0 commit comments

Comments
 (0)