profit-trailer/src/main/java/nl/komtek/gpi/controllers/GunbotProxyController.java

118 lines
4.3 KiB
Java
Raw Normal View History

2017-06-30 23:24:19 +02:00
package nl.komtek.gpi.controllers;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import nl.komtek.gpi.services.GunbotProxyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
/**
* Created by Elroy on 17-6-2017.
*/
@Controller
public class GunbotProxyController {
@Autowired
private GunbotProxyService gunbotProxyService;
@RequestMapping(value = "/public/**")
@ResponseBody
public String interceptAllCalls(HttpServletRequest request) {
System.out.println("intercepted -- " + request.getRequestURL() + "?" + request.getQueryString() + "?command=" + request.getParameter("command"));
return "intercepted";
}
@RequestMapping(value = "/public/**", params = "command=returnChartData")
@ResponseBody
public String publicRequestChartData(HttpServletRequest request,
@RequestParam String currencyPair,
@RequestParam String start,
@RequestParam long period) throws InterruptedException {
return gunbotProxyService.getChartData(currencyPair, start, period);
}
@RequestMapping(value = "/public/**", params = "command=returnTicker")
@ResponseBody
public String publicRequestTicker() {
return gunbotProxyService.getTicker();
}
@RequestMapping(value = "/tradingApi/**")
@ResponseBody
public String tradingRequests(HttpServletRequest request) {
System.out.println(request.getRequestURL() + "??command=" + request.getParameter("command"));
request.getParameterMap().keySet().stream().forEach((e) -> System.out.print(e + "-"));
return "trading api";
}
@RequestMapping(value = "/tradingApi/**", params = "command=returnCompleteBalances")
@ResponseBody
public String tradingRequestCompleteBalances(HttpServletRequest request) {
return gunbotProxyService.getCompleteBalances();
}
@RequestMapping(value = "/tradingApi/**", params = "command=returnOpenOrders")
@ResponseBody
public String tradingRequestOpenOrders(HttpServletRequest request,
@RequestParam String currencyPair) {
String result = gunbotProxyService.getOpenOrders();
JsonElement jelement = new JsonParser().parse(result);
JsonObject jobject = jelement.getAsJsonObject();
JsonArray jarray = jobject.getAsJsonArray(currencyPair);
return jarray != null ? jarray.toString() : "[]";
2017-06-30 23:24:19 +02:00
}
@RequestMapping(value = "/tradingApi/**", params = "command=returnTradeHistory")
@ResponseBody
public String tradingRequestTradeHistory(HttpServletRequest request,
@RequestParam String currencyPair) {
String result = gunbotProxyService.getTradeHistory();
JsonElement jelement = new JsonParser().parse(result);
JsonObject jobject = jelement.getAsJsonObject();
JsonArray jarray = jobject.getAsJsonArray(currencyPair);
return jarray != null ? jarray.toString() : "[]";
2017-06-30 23:24:19 +02:00
}
@RequestMapping(value = "/tradingApi/**", params = "command=cancelOrder")
@ResponseBody
public String tradingRequestCancelOrder(HttpServletRequest request,
@RequestParam String orderNumber) {
return gunbotProxyService.cancelOrder(orderNumber);
}
@RequestMapping(value = "/tradingApi/**", params = "command=sell")
@ResponseBody
public String tradingRequestSell(HttpServletRequest request,
@RequestParam String currencyPair,
@RequestParam BigDecimal rate,
@RequestParam BigDecimal amount) {
return gunbotProxyService.sellOrder(currencyPair, rate, amount);
}
@RequestMapping(value = "/tradingApi/**", params = "command=buy")
@ResponseBody
public String tradingRequestBuy(HttpServletRequest request,
@RequestParam String currencyPair,
@RequestParam BigDecimal rate,
@RequestParam BigDecimal amount) {
return gunbotProxyService.buyOrder(currencyPair, rate, amount);
}
}