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.tags.Tags; import com.code44.finance.backend.endpoint.tags.model.TagEntity; import com.code44.finance.common.utils.Preconditions; import com.code44.finance.data.model.Model; import com.code44.finance.data.providers.TagsProvider; import java.util.List; public class GetTagsRequest extends GetRequest<TagEntity> { private final Tags tagsService; public GetTagsRequest(Context context, User user, Tags tagsService) { super(null, context, user); Preconditions.notNull(tagsService, "Tags service cannot be null."); this.tagsService = tagsService; } @Override protected long getLastTimestamp(User user) { return user.getCategoriesTimestamp(); } @Override protected List<TagEntity> performRequest(long timestamp) throws Exception { return tagsService.list(timestamp).execute().getItems(); } @Override protected Model getModelFrom(TagEntity entity) { return null; } @Override protected void saveNewTimestamp(User user, long newTimestamp) { user.setTagsTimestamp(newTimestamp); } @Override protected Uri getSaveUri() { return TagsProvider.uriTags(); } }