package weiboclient4j; import weiboclient4j.model.Favorites; import weiboclient4j.model.FavoritesIds; import weiboclient4j.model.FavoritesItem; import weiboclient4j.model.FavoritesTags; import weiboclient4j.model.Tag; import weiboclient4j.params.Id; import weiboclient4j.params.Paging; import weiboclient4j.params.TagName; import weiboclient4j.params.Tid; import java.util.Collection; /** * @author Hover Ruan */ public class FavoriteService extends AbstractService { public FavoriteService(WeiboClient client) { super(client); } public Favorites getFavorites() throws WeiboClientException { return getFavorites(Paging.EMPTY); } public Favorites getFavorites(Paging paging) throws WeiboClientException { return doGet("favorites", paging, Favorites.class); } public FavoritesIds getIds() throws WeiboClientException { return getIds(Paging.EMPTY); } public FavoritesIds getIds(Paging paging) throws WeiboClientException { return doGet("favorites/ids", paging, FavoritesIds.class); } public FavoritesItem show(Id id) throws WeiboClientException { return doGet("favorites/show", withParams(id), FavoritesItem.class); } public Favorites getFavoritesByTags(Tid tid) throws WeiboClientException { return getFavoritesByTags(tid, Paging.EMPTY); } public Favorites getFavoritesByTags(Tid tid, Paging paging) throws WeiboClientException { return doGet("favorites/by_tags", paging, withParams(tid), Favorites.class); } public FavoritesTags getTags() throws WeiboClientException { return getTags(Paging.EMPTY); } public FavoritesTags getTags(Paging paging) throws WeiboClientException { return doGet("favorites/tags", paging, FavoritesTags.class); } public FavoritesIds getIdsByTags(Tid tid) throws WeiboClientException { return getIdsByTags(tid, Paging.EMPTY); } public FavoritesIds getIdsByTags(Tid tid, Paging paging) throws WeiboClientException { return doGet("favorites/by_tags/ids", paging, withParams(tid), FavoritesIds.class); } public FavoritesItem create(Id id) throws WeiboClientException { return doPost("favorites/create", withParams(id), FavoritesItem.class); } public FavoritesItem destroy(Id id) throws WeiboClientException { return doPost("favorites/destroy", withParams(id), FavoritesItem.class); } public boolean destroyBatch(Collection<Id> ids) throws WeiboClientException { ResultResponse response = doPost("favorites/destroy_batch", withParams(Id.idsParam(ids)), ResultResponse.class); return response.isResult(); } public FavoritesItem updateTags(Id id) throws WeiboClientException { return updateTags(id, null); } public FavoritesItem updateTags(Id id, Collection<TagName> tags) throws WeiboClientException { return doPost("favorites/tags/update", withParams(id, TagName.tagsParam(tags)), FavoritesItem.class); } public Tag updateTagsBatch(Tid tid, TagName tagName) throws WeiboClientException { return doPost("favorites/tags/update_batch", withParams(tid, tagName), Tag.class); } public boolean destroyTagsBatch(Tid tid) throws WeiboClientException { ResultResponse response = doPost("favorites/tags/destroy_batch", withParams(tid), ResultResponse.class); return response.isResult(); } }