package apps.makarov.com.whereismycurrency.net.requests;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import apps.makarov.com.whereismycurrency.DateUtils;
import apps.makarov.com.whereismycurrency.mappers.json.HistoryRateJsonMapper;
import apps.makarov.com.whereismycurrency.models.Rate;
/**
* Created by makarov on 30/06/15.
*/
public class FixerRequest extends WimcRequest<Rate> {
public static final String TAG = FixerRequest.class.getSimpleName();
public static final String FIXER_RATES_URL = "http://api.fixer.io";
public final String mBaseCurrency;
public final Date mDate;
public FixerRequest(String baseCurrency, Date date){
this.mBaseCurrency = baseCurrency;
this.mDate = date;
}
private String getCorrectDateFormat(){
SimpleDateFormat dt = DateUtils.getFixerIoDareFormat();
return dt.format(mDate);
}
@Override
public String getPath() {
return FIXER_RATES_URL + "/" + getCorrectDateFormat();
}
@Override
public Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("base", mBaseCurrency);
return params;
}
@Override
protected TYPE getType() {
return TYPE.GET;
}
@Override
protected List<Rate> parseStringToList(final String str) throws JSONException {
Log.d(TAG, str);
JSONObject result = new JSONObject(str);
HistoryRateJsonMapper interpreter = new HistoryRateJsonMapper();
List<Rate> list = interpreter.modelToData(result);
return list;
}
}