/** similar to updatePost, but used when post doesn't already exist in local db */
  public static void requestPost(
      final long blogId, final long postId, final ActionListener actionListener) {
    String path = "read/sites/" + blogId + "/posts/" + postId + "/?meta=site,likes";

    com.wordpress.rest.RestRequest.Listener listener =
        new RestRequest.Listener() {
          @Override
          public void onResponse(JSONObject jsonObject) {
            ReaderPost post = ReaderPost.fromJson(jsonObject);
            ReaderPostTable.addOrUpdatePost(post);
            handlePostLikes(post, jsonObject);
            if (actionListener != null) {
              actionListener.onActionResult(true);
            }
          }
        };
    RestRequest.ErrorListener errorListener =
        new RestRequest.ErrorListener() {
          @Override
          public void onErrorResponse(VolleyError volleyError) {
            AppLog.e(T.READER, volleyError);
            if (actionListener != null) {
              actionListener.onActionResult(false);
            }
          }
        };
    AppLog.d(T.READER, "requesting post");
    WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener);
  }
  /*
   * get the latest version of this post - note that the post is only considered changed if the
   * like/comment count has changed, or if the current user's like/follow status has changed
   */
  public static void updatePost(
      final ReaderPost originalPost, final UpdateResultListener resultListener) {
    String path =
        "read/sites/" + originalPost.blogId + "/posts/" + originalPost.postId + "/?meta=site,likes";

    com.wordpress.rest.RestRequest.Listener listener =
        new RestRequest.Listener() {
          @Override
          public void onResponse(JSONObject jsonObject) {
            handleUpdatePostResponse(originalPost, jsonObject, resultListener);
          }
        };
    RestRequest.ErrorListener errorListener =
        new RestRequest.ErrorListener() {
          @Override
          public void onErrorResponse(VolleyError volleyError) {
            AppLog.e(T.READER, volleyError);
            if (resultListener != null) {
              resultListener.onUpdateResult(UpdateResult.FAILED);
            }
          }
        };
    AppLog.d(T.READER, "updating post");
    WordPress.getRestClientUtilsV1_2().get(path, null, null, listener, errorListener);
  }