Package com.xeiam.xchange.atlasats.services

Source Code of com.xeiam.xchange.atlasats.services.AtlasPollingAccountServiceRaw

package com.xeiam.xchange.atlasats.services;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import si.mazi.rescu.ClientConfig;
import si.mazi.rescu.RestProxyFactory;
import si.mazi.rescu.serialization.jackson.JacksonConfigureListener;

import com.xeiam.xchange.atlasats.AtlasExchangeSpecification;
import com.xeiam.xchange.atlasats.dtos.AtlasAccountInfo;
import com.xeiam.xchange.atlasats.dtos.AtlasCurrencyPair;
import com.xeiam.xchange.atlasats.dtos.AtlasOptionContract;
import com.xeiam.xchange.atlasats.dtos.translators.AtlasCurrencyPairFromMapTranslator;
import com.xeiam.xchange.atlasats.dtos.translators.AtlasOptionContractFromMapTranslator;

public class AtlasPollingAccountServiceRaw extends AtlasAuthenticatedService {

  private AtlasExchangeSpecification exchangeSpecification;
  private AtlasAccountService accountService;
  private AtlasCurrencyPairFromMapTranslator atlasCurrencyPairFromMapTranslator;
  private AtlasOptionContractFromMapTranslator atlasOptionContractFromMapTranslator;

  public AtlasPollingAccountServiceRaw(AtlasExchangeSpecification exchangeSpecification) {

    super(exchangeSpecification.getApiKey());
    this.exchangeSpecification = exchangeSpecification;
    this.accountService = createAccountService();
    this.atlasCurrencyPairFromMapTranslator = new AtlasCurrencyPairFromMapTranslator();
    this.atlasOptionContractFromMapTranslator = new AtlasOptionContractFromMapTranslator();
  }

  private AtlasAccountService createAccountService() {

    ClientConfig clientConfig = new ClientConfig();
    JacksonConfigureListener configureListener = exchangeSpecification.getJacksonConfigureListener();
    clientConfig.setJacksonConfigureListener(configureListener);
    AtlasAccountService accountService = RestProxyFactory.createProxy(AtlasAccountService.class, exchangeSpecification.getSslUri(), clientConfig);
    return accountService;
  }

  public AtlasAccountInfo getAccountInfo() {

    return getAccountInfo(getApiKey());
  }

  private AtlasAccountInfo getAccountInfo(String apiKey) {

    return accountService.getAccountInfo(apiKey);
  }

  public List<AtlasCurrencyPair> getExchangeSymbols() {

    return getExchangeSymbols(getApiKey());
  }

  private List<AtlasCurrencyPair> getExchangeSymbols(String apiKey) {

    List<Map<String, Object>> response = accountService.getMarketSymbols(apiKey);
    List<AtlasCurrencyPair> currencyPairs = new ArrayList<AtlasCurrencyPair>();
    for (Map<String, Object> map : response) {
      Integer market_id = (Integer) map.get("market_id");
      if (market_id.equals(0)) {
        currencyPairs.add(atlasCurrencyPairFromMapTranslator.translate(map));
      }
    }
    return currencyPairs;
  }

  public List<AtlasOptionContract> getOptionContracts() {

    return getOptionContracts(getApiKey());
  }

  private List<AtlasOptionContract> getOptionContracts(String apiKey) {

    List<Map<String, Object>> response = accountService.getMarketSymbols(apiKey);
    List<AtlasOptionContract> optionContracts = new ArrayList<AtlasOptionContract>();
    for (Map<String, Object> map : response) {
      if (map.containsKey("exp")) {
        optionContracts.add(atlasOptionContractFromMapTranslator.translate(map));
      }
    }
    return optionContracts;
  }

}
TOP

Related Classes of com.xeiam.xchange.atlasats.services.AtlasPollingAccountServiceRaw

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.