package org.knowm.xchange.coinbase; import java.io.IOException; import java.math.BigDecimal; import java.util.List; import java.util.Map; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.knowm.xchange.coinbase.dto.CoinbaseException; import org.knowm.xchange.coinbase.dto.account.CoinbaseToken; import org.knowm.xchange.coinbase.dto.account.CoinbaseUser; import org.knowm.xchange.coinbase.dto.marketdata.CoinbaseCurrency; import org.knowm.xchange.coinbase.dto.marketdata.CoinbaseMoney; import org.knowm.xchange.coinbase.dto.marketdata.CoinbasePrice; /** * @author jamespedwards42 */ @Path("api/v1") @Produces(MediaType.APPLICATION_JSON) public interface Coinbase { @GET @Path("currencies") List<CoinbaseCurrency> getCurrencies() throws IOException, CoinbaseException; @GET @Path("currencies/exchange_rates") Map<String, BigDecimal> getCurrencyExchangeRates() throws IOException, CoinbaseException; @GET @Path("prices/buy") CoinbasePrice getBuyPrice(@QueryParam("qty") BigDecimal quantity, @QueryParam("currency") String currency) throws IOException, CoinbaseException; @GET @Path("prices/sell") CoinbasePrice getSellPrice(@QueryParam("qty") BigDecimal quantity, @QueryParam("currency") String currency) throws IOException, CoinbaseException; @GET @Path("prices/spot_rate") CoinbaseMoney getSpotRate(@QueryParam("currency") String currency) throws IOException, CoinbaseException; @GET @Produces(MediaType.TEXT_PLAIN) @Path("prices/historical") String getHistoricalSpotRates(@QueryParam("page") Integer page) throws IOException, CoinbaseException; @POST @Consumes(MediaType.APPLICATION_JSON) @Path("users") CoinbaseUser createUser(CoinbaseUser user) throws IOException, CoinbaseException; @POST @Path("tokens") CoinbaseToken createToken() throws IOException, CoinbaseException; }