package org.knowm.xchange.vaultoro.service;
import java.io.IOException;
import java.util.Collection;
import org.knowm.xchange.Exchange;
import org.knowm.xchange.dto.Order;
import org.knowm.xchange.dto.trade.LimitOrder;
import org.knowm.xchange.dto.trade.MarketOrder;
import org.knowm.xchange.dto.trade.OpenOrders;
import org.knowm.xchange.dto.trade.UserTrades;
import org.knowm.xchange.exceptions.ExchangeException;
import org.knowm.xchange.exceptions.NotAvailableFromExchangeException;
import org.knowm.xchange.exceptions.NotYetImplementedForExchangeException;
import org.knowm.xchange.service.trade.TradeService;
import org.knowm.xchange.service.trade.params.TradeHistoryParams;
import org.knowm.xchange.service.trade.params.orders.OpenOrdersParams;
import org.knowm.xchange.vaultoro.VaultoroAdapters;
import org.knowm.xchange.vaultoro.dto.trade.VaultoroCancelOrderResponse;
import org.knowm.xchange.vaultoro.dto.trade.VaultoroNewOrderResponse;
public class VaultoroTradeService extends VaultoroTradeServiceRaw implements TradeService {
/**
* Constructor
*
* @param exchange
*/
public VaultoroTradeService(Exchange exchange) {
super(exchange);
}
@Override
public boolean cancelOrder(String arg0)
throws ExchangeException, NotAvailableFromExchangeException, NotYetImplementedForExchangeException, IOException {
try {
VaultoroCancelOrderResponse response = super.cancelVaultoroOrder(arg0);
if (response.getStatus().equals("success")) {
return true;
} else {
return false;
}
} catch (ExchangeException e) {
return false;
}
}
@Override
public TradeHistoryParams createTradeHistoryParams() {
throw new NotAvailableFromExchangeException();
}
@Override
public OpenOrdersParams createOpenOrdersParams() {
return null;
}
@Override
public OpenOrders getOpenOrders() throws ExchangeException, NotAvailableFromExchangeException, NotYetImplementedForExchangeException, IOException {
return getOpenOrders(createOpenOrdersParams());
}
@Override
public OpenOrders getOpenOrders(OpenOrdersParams params) throws ExchangeException, NotAvailableFromExchangeException, NotYetImplementedForExchangeException, IOException {
return VaultoroAdapters.adaptVaultoroOpenOrders(getVaultoroOrders());
}
@Override
public UserTrades getTradeHistory(TradeHistoryParams arg0) throws IOException {
throw new NotAvailableFromExchangeException();
}
@Override
public String placeLimitOrder(LimitOrder arg0)
throws ExchangeException, NotAvailableFromExchangeException, NotYetImplementedForExchangeException, IOException {
VaultoroNewOrderResponse response = super.placeLimitOrder(arg0.getCurrencyPair(), arg0.getType(), arg0.getTradableAmount(), arg0.getLimitPrice());
return response.getData().getOrderID();
}
@Override
public String placeMarketOrder(MarketOrder arg0)
throws ExchangeException, NotAvailableFromExchangeException, NotYetImplementedForExchangeException, IOException {
VaultoroNewOrderResponse response = super.placeMarketOrder(arg0.getCurrencyPair(), arg0.getType(), arg0.getTradableAmount());
return response.getData().getOrderID();
}
@Override
public Collection<Order> getOrder(String... arg0)
throws ExchangeException, NotAvailableFromExchangeException, NotYetImplementedForExchangeException, IOException {
throw new NotAvailableFromExchangeException();
}
}