Added more currencies of smartapi.
This commit is contained in:
parent
f5cc8b3b3e
commit
4f6d5fbefa
|
@ -16,6 +16,7 @@
|
|||
package com.generalbytes.batm.server.extensions.extra.smartcash.sources.smartcash;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class APIResponse {
|
||||
|
||||
|
@ -28,13 +29,21 @@ public class APIResponse {
|
|||
|
||||
public static class Item {
|
||||
public String updated;
|
||||
public Currencies currencies;
|
||||
public Currency currencies;
|
||||
}
|
||||
|
||||
public static class Currencies {
|
||||
public static class Currency {
|
||||
public BigDecimal USD;
|
||||
public BigDecimal EUR;
|
||||
public BigDecimal CHF;
|
||||
public BigDecimal CAD;
|
||||
public BigDecimal AUD;
|
||||
public BigDecimal GBP;
|
||||
public BigDecimal BRL;
|
||||
public BigDecimal VEF;
|
||||
public BigDecimal SGD;
|
||||
public BigDecimal KRW;
|
||||
public BigDecimal JPY;
|
||||
}
|
||||
|
||||
public class Last {
|
||||
|
@ -44,14 +53,16 @@ public class APIResponse {
|
|||
|
||||
public BigDecimal getPrice(String fiatCurrency) {
|
||||
|
||||
if (fiatCurrency.equalsIgnoreCase("USD")) {
|
||||
return this.items[0].currencies.USD;
|
||||
}else if (fiatCurrency.equalsIgnoreCase("EUR")) {
|
||||
return this.items[0].currencies.EUR;
|
||||
}else if (fiatCurrency.equalsIgnoreCase("CHF")) {
|
||||
return this.items[0].currencies.CHF;
|
||||
BigDecimal price = null;
|
||||
|
||||
try {
|
||||
Field field = this.items[0].currencies.getClass().getDeclaredField(fiatCurrency);
|
||||
field.setAccessible(true);
|
||||
price = (BigDecimal)field.get(this.items[0].currencies);
|
||||
} catch (Exception e){
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
return price;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ import java.math.BigDecimal;
|
|||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class SmartCashRateSource implements IRateSource{
|
||||
private static final Logger log = LoggerFactory.getLogger(SmartCashRateSource.class);
|
||||
|
@ -45,9 +46,11 @@ public class SmartCashRateSource implements IRateSource{
|
|||
private static final long MAXIMUM_ALLOWED_TIME_OFFSET = 30 * 1000; //30sec
|
||||
|
||||
public SmartCashRateSource(String preferedFiatCurrency) {
|
||||
if (preferedFiatCurrency == null) {
|
||||
|
||||
if (!getFiatCurrencies().contains(preferedFiatCurrency)) {
|
||||
preferedFiatCurrency = Currencies.USD;
|
||||
}
|
||||
|
||||
this.preferedFiatCurrency = preferedFiatCurrency;
|
||||
|
||||
api = RestProxyFactory.createProxy(ISmartCashAPI.class, "https://api.smartcash.cc");
|
||||
|
@ -56,9 +59,13 @@ public class SmartCashRateSource implements IRateSource{
|
|||
@Override
|
||||
public Set<String> getFiatCurrencies() {
|
||||
Set<String> fiatCurrencies = new HashSet<String>();
|
||||
fiatCurrencies.add(Currencies.USD);
|
||||
fiatCurrencies.add(Currencies.EUR);
|
||||
fiatCurrencies.add(Currencies.CHF);
|
||||
|
||||
Field[] fields = APIResponse.Currency.class.getFields();
|
||||
|
||||
for (Field f : fields) {
|
||||
fiatCurrencies.add(f.getName());
|
||||
}
|
||||
|
||||
return fiatCurrencies;
|
||||
}
|
||||
|
||||
|
@ -74,7 +81,6 @@ public class SmartCashRateSource implements IRateSource{
|
|||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BigDecimal getExchangeRateLast(String cryptoCurrency, String fiatCurrency) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue