aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/ui/stats/models/CommentsModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/ui/stats/models/CommentsModel.java')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/stats/models/CommentsModel.java107
1 files changed, 107 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/models/CommentsModel.java b/WordPress/src/main/java/org/wordpress/android/ui/stats/models/CommentsModel.java
new file mode 100644
index 000000000..ef7bfe6ac
--- /dev/null
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/models/CommentsModel.java
@@ -0,0 +1,107 @@
+package org.wordpress.android.ui.stats.models;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.wordpress.android.ui.stats.StatsConstants;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class CommentsModel extends BaseStatsModel {
+ private String mDate;
+ private String mBlogID;
+ private int mMonthlyComments;
+ private int mTotalComments;
+ private String mMostActiveDay;
+ private String mMostActiveTime;
+ private SingleItemModel mMostCommentedPost;
+
+ private List<PostModel> mPosts;
+ private List<AuthorModel> mAuthors;
+
+ public CommentsModel(String blogID, JSONObject response) throws JSONException {
+ this.mBlogID = blogID;
+ this.mDate = response.getString("date");
+
+ this.mMonthlyComments = response.getInt("monthly_comments");
+ this.mTotalComments = response.getInt("total_comments");
+ this.mMostActiveDay = response.getString("most_active_day");
+ this.mMostActiveTime = response.getString("most_active_time");
+
+
+ JSONArray postsJSONArray = response.optJSONArray("posts");
+ if (postsJSONArray != null) {
+ mPosts = new ArrayList<>(postsJSONArray.length());
+ for (int i = 0; i < postsJSONArray.length(); i++) {
+ JSONObject currentPostJSON = postsJSONArray.getJSONObject(i);
+ String itemID = String.valueOf(currentPostJSON.getInt("id"));
+ String name = currentPostJSON.getString("name");
+ int totals = currentPostJSON.getInt("comments");
+ String link = currentPostJSON.getString("link");
+ PostModel currentPost = new PostModel(blogID, mDate, itemID, name, totals, link, StatsConstants.ITEM_TYPE_POST);
+ mPosts.add(currentPost);
+ }
+ }
+
+ JSONArray authorsJSONArray = response.optJSONArray("authors");
+ if (authorsJSONArray != null) {
+ mAuthors = new ArrayList<>(authorsJSONArray.length());
+ for (int i = 0; i < authorsJSONArray.length(); i++) {
+ JSONObject currentAuthorJSON = authorsJSONArray.getJSONObject(i);
+ String name = currentAuthorJSON.getString("name");
+ int comments = currentAuthorJSON.getInt("comments");
+ String url = currentAuthorJSON.getString("link");
+ String gravatar = currentAuthorJSON.getString("gravatar");
+ JSONObject followData = currentAuthorJSON.optJSONObject("follow_data");
+ AuthorModel currentAuthor = new AuthorModel(blogID, mDate, url, name, gravatar, comments, followData);
+ mAuthors.add(currentAuthor);
+ }
+ }
+ }
+
+ public String getBlogID() {
+ return mBlogID;
+ }
+
+ public void setBlogID(String blogID) {
+ this.mBlogID = blogID;
+ }
+
+ public String getDate() {
+ return mDate;
+ }
+
+ public void setDate(String date) {
+ this.mDate = date;
+ }
+
+ public List<PostModel> getPosts() {
+ return this.mPosts;
+ }
+
+ public List<AuthorModel> getAuthors() {
+ return this.mAuthors;
+ }
+
+ public int getTotalComments() {
+ return mTotalComments;
+ }
+
+ public int getMonthlyComments() {
+ return mMonthlyComments;
+ }
+
+ public String getMostActiveDay() {
+ return mMostActiveDay;
+ }
+
+ public String getMostActiveTime() {
+ return mMostActiveTime;
+ }
+
+ public SingleItemModel getMostCommentedPost() {
+ return mMostCommentedPost;
+ }
+}