diff --git a/src/main/java/bisq/markets/api/GraphQLQuery.java b/src/main/java/bisq/markets/api/GraphQLQuery.java index 26b145b..3dcba6c 100644 --- a/src/main/java/bisq/markets/api/GraphQLQuery.java +++ b/src/main/java/bisq/markets/api/GraphQLQuery.java @@ -108,13 +108,16 @@ public int compareTo(OpenOffer o) { } } } + private static final String offerFields = "{ " + + "market: marketPair offer_id: id offer_date: offerDate " + + "direction min_amount: formattedMinAmount " + + "amount: formattedAmount price: formattedPrice " + + "volume: formattedVolume payment_method: paymentMethodId " + + "offer_fee_txid: offerFeeTxId } "; private static final String offersQuery = "query Offers($market: MarketPair, $direction: Direction)" + "{ offers(market: $market, direction: $direction) { " + - "market: marketPair offer_id: id offer_date: offerDate " + - "direction min_amount: formattedMinAmount " + - "amount: formattedAmount price: formattedPrice " + - "volume: formattedVolume payment_method: paymentMethodId " + - "offer_fee_txid: offerFeeTxId } }"; + "buys " + offerFields + + "sells " + offerFields + " } }"; private final String query = offersQuery; private final Map variables; @@ -124,31 +127,8 @@ public int compareTo(OpenOffer o) { @Override public Object translateResponse(String response) { - GraphQLResponse> offers = gson.fromJson(response,new TypeToken>>(){}.getType()); - - Iterator iter = offers.getData().iterator(); - Map>> ret = new HashMap<>(); - while(iter.hasNext()) { - OpenOffer offer = iter.next(); - if (!ret.containsKey(offer.market)) { - Map> directions = new HashMap<>(); - directions.put("buys",new ArrayList<>()); - directions.put("sells",new ArrayList<>()); - ret.put(offer.market, directions); - } - Map> directions = ret.get(offer.market); - if (offer.direction.equals("BUY")) { - List buys = directions.get("buys"); - buys.add(offer); - Collections.sort(buys); - Collections.reverse(buys); - } else { - List sells = directions.get("sells"); - sells.add(offer); - Collections.sort(sells); - } - } - return ret; + GraphQLResponse>> offers = gson.fromJson(response,new TypeToken>>>(){}.getType()); + return offers.getData(); } } @@ -158,7 +138,8 @@ private static class Depth { List sells; } private static final String depthQuery = "query Depth($market: MarketPair!)" + - "{ depth(market: $market) { buys: formattedBuys sells: formattedSells } }"; + "{ offers(market: $market) { " + + "buys: formattedBuyPrices sells: formattedSellPrices } }"; private final String query = depthQuery; private final Map variables;