package com.uservoice.uservoicesdk.model; import com.uservoice.uservoicesdk.babayaga.Babayaga; import com.uservoice.uservoicesdk.rest.Callback; import com.uservoice.uservoicesdk.rest.RestTaskCallback; import org.json.JSONException; import org.json.JSONObject; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; public class Comment extends BaseModel { private String text; private String userName; private String avatarUrl; private Date createdAt; public static void loadComments(Suggestion suggestion, int page, final Callback<List<Comment>> callback) { Map<String, String> params = new HashMap<String, String>(); params.put("page", String.valueOf(page)); doGet(apiPath("/forums/%d/suggestions/%d/comments.json", suggestion.getForumId(), suggestion.getId()), params, new RestTaskCallback(callback) { @Override public void onComplete(JSONObject object) throws JSONException { callback.onModel(deserializeList(object, "comments", Comment.class)); } }); } public static void createComment(final Suggestion suggestion, String text, final Callback<Comment> callback) { Map<String, String> params = new HashMap<String, String>(); params.put("comment[text]", text); doPost(apiPath("/forums/%d/suggestions/%d/comments.json", suggestion.getForumId(), suggestion.getId()), params, new RestTaskCallback(callback) { @Override public void onComplete(JSONObject object) throws JSONException { Babayaga.track(Babayaga.Event.COMMENT_IDEA, suggestion.getId()); callback.onModel(deserializeObject(object, "comment", Comment.class)); } }); } @Override public void load(JSONObject object) throws JSONException { super.load(object); text = getString(object, "formatted_text"); JSONObject user = object.getJSONObject("creator"); userName = getString(user, "name"); avatarUrl = getString(user, "avatar_url"); createdAt = getDate(object, "created_at"); } public String getText() { return text; } public String getUserName() { return userName; } public String getAvatarUrl() { return avatarUrl; } public Date getCreatedAt() { return createdAt; } }