package com.uservoice.uservoicesdk.model; import com.uservoice.uservoicesdk.rest.Callback; import com.uservoice.uservoicesdk.rest.RestTaskCallback; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; public class Forum extends BaseModel { private String name; private int numberOfVotesAllowed; private int numberOfOpenSuggestions; private List<Category> categories; public static void loadForum(int forumId, final Callback<Forum> callback) { doGet(apiPath("/forums/%d.json", forumId), new RestTaskCallback(callback) { @Override public void onComplete(JSONObject object) throws JSONException { callback.onModel(deserializeObject(object, "forum", Forum.class)); } }); } @Override public void load(JSONObject object) throws JSONException { super.load(object); name = getString(object, "name"); JSONObject topic = object.getJSONArray("topics").getJSONObject(0); numberOfOpenSuggestions = topic.getInt("open_suggestions_count"); numberOfVotesAllowed = topic.getInt("votes_allowed"); categories = deserializeList(topic, "categories", Category.class); if (categories == null) categories = new ArrayList<Category>(); } public String getName() { return name; } public int getNumberOfOpenSuggestions() { return numberOfOpenSuggestions; } public int getNumberOfVotesAllowed() { return numberOfVotesAllowed; } public List<Category> getCategories() { return categories; } }