package com.code44.finance.api.requests; import android.content.ContentValues; import android.content.Context; import android.net.Uri; import com.code44.finance.api.User; import com.code44.finance.backend.endpoint.currencies.Currencies; import com.code44.finance.backend.endpoint.currencies.model.CurrencyEntity; import com.code44.finance.common.utils.Preconditions; import com.code44.finance.data.db.Tables; import com.code44.finance.data.model.Model; import com.code44.finance.data.providers.CurrenciesProvider; import java.util.List; public class GetCurrenciesRequest extends GetRequest<CurrencyEntity> { private final Currencies currenciesService; public GetCurrenciesRequest(Context context, User user, Currencies currenciesService) { super(null, context, user); Preconditions.notNull(currenciesService, "Currencies cannot be null."); this.currenciesService = currenciesService; } @Override protected long getLastTimestamp(User user) { return user.getCurrenciesTimestamp(); } @Override protected List<CurrencyEntity> performRequest(long timestamp) throws Exception { return currenciesService.list(timestamp).execute().getItems(); } @Override protected Model getModelFrom(CurrencyEntity entity) { return null; } @Override protected void saveNewTimestamp(User user, long newTimestamp) { user.setCurrenciesTimestamp(newTimestamp); } @Override protected Uri getSaveUri() { return CurrenciesProvider.uriCurrencies(); } @Override protected void onValuesCreated(ContentValues values) { super.onValuesCreated(values); values.remove(Tables.Currencies.EXCHANGE_RATE.getName()); } }