package io.kaif.mobile.service; import java.util.List; import io.kaif.mobile.model.Article; import retrofit2.http.Body; import retrofit2.http.GET; import retrofit2.http.PUT; import retrofit2.http.Path; import retrofit2.http.Query; import rx.Observable; public interface ArticleService { class ExternalLinkEntry { String url; String title; String zone; public ExternalLinkEntry(String url, String title, String zone) { this.url = url; this.title = title; this.zone = zone; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } ExternalLinkEntry that = (ExternalLinkEntry) o; if (!url.equals(that.url)) { return false; } if (!title.equals(that.title)) { return false; } return zone.equals(that.zone); } @Override public int hashCode() { int result = url.hashCode(); result = 31 * result + title.hashCode(); result = 31 * result + zone.hashCode(); return result; } } @PUT("/v1/article/external-link") Observable<Article> createExternalLink(@Body ExternalLinkEntry externalLinkEntry); @GET("/v1/article/hot") Observable<List<Article>> listHotArticles(@Query("start-article-id") String startArticleId); @GET("/v1/article/zone/{zone}/external-link/exist") Observable<Boolean> exist(@Path("zone") String zone, @Query("url") String url); @GET("/v1/article/latest") Observable<List<Article>> listLatestArticles(@Query("start-article-id") String startArticleId); @GET("/v1/article/{articleId}") Observable<Article> loadArticle(@Path("articleId") String articleId); }