Skip to content

Commit

Permalink
minimal fix for issue #58
Browse files Browse the repository at this point in the history
  • Loading branch information
onyxcoyote committed Dec 24, 2018
1 parent 6d54017 commit ff6dc83
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 5 deletions.
10 changes: 7 additions & 3 deletions src/main/java/com/coinbase/exchange/api/orders/OrderService.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public OrderService(GdaxExchange exchange) {
}

public static final String ORDERS_ENDPOINT = "/orders";
public static final String FILLS_ENDPOINT = "/fills";

public List<Hold> getHolds(String accountId) {
return exchange.getAsList(ORDERS_ENDPOINT + "/" + accountId + "/holds", new ParameterizedTypeReference<Hold[]>(){});
Expand Down Expand Up @@ -57,9 +58,12 @@ public List<Order> cancelAllOpenOrders() {
return Arrays.asList(exchange.delete(ORDERS_ENDPOINT, new ParameterizedTypeReference<Order[]>(){}));
}

public List<Fill> getAllFills() {
String fillsEndpoint = "/fills";
return exchange.getAsList(fillsEndpoint, new ParameterizedTypeReference<Fill[]>(){});
public List<Fill> getFillsByProductId(String product_id, int resultLimit) {
return exchange.getAsList(FILLS_ENDPOINT + "?product_id=" + product_id + "&limit=" + resultLimit, new ParameterizedTypeReference<Fill[]>(){});
}

public List<Fill> getFillByOrderId(String order_id, int resultLimit) {
return exchange.getAsList(FILLS_ENDPOINT + "?order_id=" + order_id + "&limit=" + resultLimit, new ParameterizedTypeReference<Fill[]>(){});
}
}

Expand Down
23 changes: 21 additions & 2 deletions src/test/java/com/coinbase/exchange/api/orders/OrderTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,29 @@ public void getAllOpenOrders() {
}

@Test
public void getFills() {
List<Fill> fills = orderService.getAllFills();
public void getFillsByProductId() {
List<Fill> 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<Fill> fills = orderService.getFillByOrderId(orderId, 100);
assertTrue(fills.size() >= 0);
}

@Test
public void createMarketOrderBuy(){
NewMarketOrderSingle marketOrder = createNewMarketOrder("BTC-USD", "buy", new BigDecimal(0.01));
Expand Down

0 comments on commit ff6dc83

Please sign in to comment.