package org.wordpress.android.ui.stats.models; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class InsightsLatestPostModel extends BaseStatsModel { private long mBlogID; private String mPostTitle; private String mPostURL; private String mPostDate; private int mPostID; private int mPostViewsCount = Integer.MIN_VALUE; private int mPostCommentCount; private int mPostLikeCount; private int mPostsFound; // if 0 there are no posts on the blog. public InsightsLatestPostModel(long blogID, JSONObject response) throws JSONException { this.mBlogID = blogID; mPostsFound = response.optInt("found", 0); if (mPostsFound == 0) { // No latest post found! return; } JSONArray postsObject = response.getJSONArray("posts"); if (postsObject.length() == 0) { throw new JSONException("Invalid document returned from the REST API"); } // Read the first post JSONObject firstPostObject = postsObject.getJSONObject(0); this.mPostID = firstPostObject.getInt("ID"); this.mPostTitle = firstPostObject.getString("title"); this.mPostDate = firstPostObject.getString("date"); this.mPostURL = firstPostObject.getString("URL"); this.mPostLikeCount = firstPostObject.getInt("like_count"); JSONObject discussionObject = firstPostObject.optJSONObject("discussion"); if (discussionObject != null) { this.mPostCommentCount = discussionObject.optInt("comment_count", 0); } } public boolean isLatestPostAvailable() { return mPostsFound > 0; } public long getBlogID() { return mBlogID; } public String getPostDate() { return mPostDate; } public String getPostTitle() { return mPostTitle; } public String getPostURL() { return mPostURL; } public int getPostID() { return mPostID; } public int getPostViewsCount() { return mPostViewsCount; } public void setPostViewsCount(int postViewsCount) { this.mPostViewsCount = postViewsCount; } public int getPostCommentCount() { return mPostCommentCount; } public int getPostLikeCount() { return mPostLikeCount; } }