blob: ef7bfe6acfe38d647b8adfcb2ebb0cb39a3441b9 [file] [log] [blame]
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;
}
}