From 87c9cd5b38ba0b6d80a1310270fcd445f065c1e7 Mon Sep 17 00:00:00 2001 From: nyg Date: Sat, 29 Nov 2025 13:05:00 +0100 Subject: [PATCH] fix: avoid sending query params for AssetPairs endpoint --- .../api/endpoint/market/params/AssetPairParams.java | 10 +++++++--- .../kraken/api/endpoint/market/response/AssetPair.java | 4 ++-- .../andstuff/kraken/api/endpoint/pub/QueryParams.java | 7 +++++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/params/AssetPairParams.java b/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/params/AssetPairParams.java index a8fe8c0..e05193e 100644 --- a/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/params/AssetPairParams.java +++ b/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/params/AssetPairParams.java @@ -1,5 +1,8 @@ package dev.andstuff.kraken.api.endpoint.market.params; +import static dev.andstuff.kraken.api.endpoint.pub.QueryParams.putIfNonNull; + +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -14,9 +17,10 @@ public class AssetPairParams implements QueryParams { private final Info info; public Map toMap() { - return Map.of( - "pair", String.join(",", pairs), - "info", info.getValue()); + HashMap params = new HashMap<>(); + putIfNonNull(params, "pair", pairs, v -> String.join(",", v)); + putIfNonNull(params, "info", info, Info::getValue); + return params; } @Getter diff --git a/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/response/AssetPair.java b/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/response/AssetPair.java index 08d7508..a371f70 100644 --- a/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/response/AssetPair.java +++ b/library/src/main/java/dev/andstuff/kraken/api/endpoint/market/response/AssetPair.java @@ -28,8 +28,8 @@ public record AssetPair(@JsonProperty("altname") String alternateName, @JsonProperty("costmin") BigDecimal minimumOrderCost, @JsonProperty("tick_size") BigDecimal tickSize, @JsonProperty("status") Status status, - @JsonProperty("long_position_limit") int maxLongPositionSize, - @JsonProperty("short_position_limit") int maxShortPositionSize) { + @JsonProperty("long_position_limit") long maxLongPositionSize, + @JsonProperty("short_position_limit") long maxShortPositionSize) { @JsonFormat(shape = JsonFormat.Shape.ARRAY) public record FeeSchedule(BigDecimal volume, BigDecimal percentage) {} diff --git a/library/src/main/java/dev/andstuff/kraken/api/endpoint/pub/QueryParams.java b/library/src/main/java/dev/andstuff/kraken/api/endpoint/pub/QueryParams.java index cdf8e11..cbc8c7d 100644 --- a/library/src/main/java/dev/andstuff/kraken/api/endpoint/pub/QueryParams.java +++ b/library/src/main/java/dev/andstuff/kraken/api/endpoint/pub/QueryParams.java @@ -1,10 +1,17 @@ package dev.andstuff.kraken.api.endpoint.pub; import java.util.Map; +import java.util.function.Function; public interface QueryParams { QueryParams EMPTY = Map::of; Map toMap(); + + static void putIfNonNull(Map map, String key, T value, Function apply) { + if (value != null) { + map.put(key, apply.apply(value)); + } + } }