package com.code44.finance.api.requests; import android.content.Context; import android.net.Uri; import com.code44.finance.api.User; import com.code44.finance.backend.endpoint.categories.Categories; import com.code44.finance.backend.endpoint.categories.model.CategoryEntity; import com.code44.finance.common.utils.Preconditions; import com.code44.finance.data.model.Model; import com.code44.finance.data.providers.CategoriesProvider; import java.util.List; public class GetCategoriesRequest extends GetRequest<CategoryEntity> { private final Categories categoriesService; public GetCategoriesRequest(Context context, User user, Categories categoriesService) { super(null, context, user); Preconditions.notNull(categoriesService, "Categories cannot be null."); this.categoriesService = categoriesService; } @Override protected long getLastTimestamp(User user) { return user.getCategoriesTimestamp(); } @Override protected List<CategoryEntity> performRequest(long timestamp) throws Exception { return categoriesService.list(timestamp).execute().getItems(); } @Override protected Model getModelFrom(CategoryEntity entity) { return null; } @Override protected void saveNewTimestamp(User user, long newTimestamp) { user.setCategoriesTimestamp(newTimestamp); } @Override protected Uri getSaveUri() { return CategoriesProvider.uriCategories(); } }