Added more currencies of smartapi.

This commit is contained in:
xdustinface 2018-05-03 15:34:30 +02:00
parent f5cc8b3b3e
commit 4f6d5fbefa
2 changed files with 31 additions and 14 deletions

View File

@ -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;
}
}

View File

@ -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) {