package com.code44.finance.api.currencies;
import android.content.Context;
import com.code44.finance.api.Request;
import com.code44.finance.common.utils.Preconditions;
import com.code44.finance.utils.EventBus;
import java.util.List;
import java.util.concurrent.Executor;
public class CurrenciesApi {
private final Executor executor;
private final Context context;
private final EventBus eventBus;
private final CurrenciesRequestService requestService;
public CurrenciesApi(Executor executor, Context context, EventBus eventBus, CurrenciesRequestService requestService) {
Preconditions.notNull(executor, "Executor cannot be null.");
Preconditions.notNull(context, "Context cannot be null.");
Preconditions.notNull(eventBus, "EventBus cannot be null.");
Preconditions.notNull(requestService, "CurrenciesRequestService cannot be null.");
this.executor = executor;
this.context = context;
this.eventBus = eventBus;
this.requestService = requestService;
}
public void getExchangeRate(String fromCode, String toCode) {
final ExchangeRateRequest request = new ExchangeRateRequest(eventBus, context, requestService, fromCode, toCode, false);
executeRequest(request);
}
public void updateExchangeRate(String fromCode, String toCode) {
final ExchangeRateRequest request = new ExchangeRateRequest(eventBus, context, requestService, fromCode, toCode, true);
executeRequest(request);
}
public void updateExchangeRates(List<String> fromCodes, String toCode) {
final ExchangeRatesRequest request = new ExchangeRatesRequest(eventBus, context, requestService, fromCodes, toCode);
executeRequest(request);
}
private void executeRequest(Request request) {
executor.execute(request);
}
}