diff --git a/src/main/java/com/coinbase/exchange/api/orders/OrderService.java b/src/main/java/com/coinbase/exchange/api/orders/OrderService.java index c664ed5..662b741 100644 --- a/src/main/java/com/coinbase/exchange/api/orders/OrderService.java +++ b/src/main/java/com/coinbase/exchange/api/orders/OrderService.java @@ -27,6 +27,7 @@ public OrderService(GdaxExchange exchange) { } public static final String ORDERS_ENDPOINT = "/orders"; + public static final String FILLS_ENDPOINT = "/fills"; public List getHolds(String accountId) { return exchange.getAsList(ORDERS_ENDPOINT + "/" + accountId + "/holds", new ParameterizedTypeReference(){}); @@ -57,9 +58,12 @@ public List cancelAllOpenOrders() { return Arrays.asList(exchange.delete(ORDERS_ENDPOINT, new ParameterizedTypeReference(){})); } - public List getAllFills() { - String fillsEndpoint = "/fills"; - return exchange.getAsList(fillsEndpoint, new ParameterizedTypeReference(){}); + public List getFillsByProductId(String product_id, int resultLimit) { + return exchange.getAsList(FILLS_ENDPOINT + "?product_id=" + product_id + "&limit=" + resultLimit, new ParameterizedTypeReference(){}); + } + + public List getFillByOrderId(String order_id, int resultLimit) { + return exchange.getAsList(FILLS_ENDPOINT + "?order_id=" + order_id + "&limit=" + resultLimit, new ParameterizedTypeReference(){}); } } diff --git a/src/test/java/com/coinbase/exchange/api/orders/OrderTests.java b/src/test/java/com/coinbase/exchange/api/orders/OrderTests.java index e62affd..6f1dfc8 100644 --- a/src/test/java/com/coinbase/exchange/api/orders/OrderTests.java +++ b/src/test/java/com/coinbase/exchange/api/orders/OrderTests.java @@ -102,10 +102,29 @@ public void getAllOpenOrders() { } @Test - public void getFills() { - List fills = orderService.getAllFills(); + public void getFillsByProductId() { + List fills = orderService.getFillsByProductId("BTC-USD", 100); assertTrue(fills.size() >= 0); } + + @Test + public void createMarketOrderBuyThenGetFillByOrderId() { + NewMarketOrderSingle marketOrder = createNewMarketOrder("BTC-USD", "buy", new BigDecimal(0.01)); + Order order = orderService.createOrder(marketOrder); + + assertTrue(order != null); //make sure we created an order + String orderId = order.getId(); + assertTrue(orderId.length() > 0); //ensure we have an actual orderId + Order filledOrder = orderService.getOrder(orderId); + assertTrue(filledOrder != null); //ensure our order hit the system + assertTrue(new BigDecimal(filledOrder.getSize()).compareTo(BigDecimal.ZERO) > 0); //ensure we got a fill + log.info("Order opened and filled: " + filledOrder.getSize() + " @ " + filledOrder.getExecuted_value() + + " at the cost of " + filledOrder.getFill_fees()); + + List fills = orderService.getFillByOrderId(orderId, 100); + assertTrue(fills.size() >= 0); + } + @Test public void createMarketOrderBuy(){ NewMarketOrderSingle marketOrder = createNewMarketOrder("BTC-USD", "buy", new BigDecimal(0.01));