package io.kaif.mobile.service; import java.util.List; import io.kaif.mobile.model.Debate; import io.kaif.mobile.model.DebateNode; 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 DebateService { class CreateDebateEntry { String articleId; String parentDebateId; String content; public CreateDebateEntry(String articleId, String parentDebateId, String content) { this.articleId = articleId; this.parentDebateId = parentDebateId; this.content = content; } @Override public String toString() { return "CreateDebateEntry{" + "articleId='" + articleId + '\'' + ", parentDebateId='" + parentDebateId + '\'' + ", content='" + content + '\'' + '}'; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } CreateDebateEntry that = (CreateDebateEntry) o; if (!articleId.equals(that.articleId)) { return false; } if (parentDebateId != null ? !parentDebateId.equals(that.parentDebateId) : that.parentDebateId != null) { return false; } return content.equals(that.content); } @Override public int hashCode() { int result = articleId.hashCode(); result = 31 * result + (parentDebateId != null ? parentDebateId.hashCode() : 0); result = 31 * result + content.hashCode(); return result; } } @GET("/v1/debate/latest") Observable<List<Debate>> listLatestDebates(@Query("start-debate-id") String startDebateId); @GET("/v1/debate/article/{articleId}/tree") Observable<DebateNode> getDebateTree(@Path("articleId") String articleId); @PUT("/v1/debate") Observable<Debate> debate(@Body CreateDebateEntry createDebateEntry); }