def create_review(book_id, params = {})
      params = params.merge(book_id: book_id, v: "2")

      params[:read_at] = params[:read_at].strftime('%Y-%m-%d') if params[:read_at].is_a?(Time)

      params[:'review[review]'] = params.delete(:review) if params[:review]
      params[:'review[rating]'] = params.delete(:rating) if params[:rating]
      params[:'review[read_at]'] = params.delete(:read_at) if params[:read_at]

      data = oauth_request_method(:post, '/review.xml', params)

      Hashie::Mash.new(data["review"])
    end
def create_review(book_id, params = {})
      params = params.merge(book_id: book_id, v: "2")

      params[:read_at] = params[:read_at].strftime('%Y-%m-%d') if params[:read_at].is_a?(Time)

      params[:'review[review]'] = params.delete(:review) if params[:review]
      params[:'review[rating]'] = params.delete(:rating) if params[:rating]
      params[:'review[read_at]'] = params.delete(:read_at) if params[:read_at]

      data = oauth_request_method(:post, '/review.xml', params)

      Hashie::Mash.new(data["review"])
    end
Add review for a book

 Params can include :review, :rating, and :shelf

 review: text of the review (optional)
 rating: rating (0-5) (optional, default is 0 (no rating))
 shelf: Name of shelf to add book to (optional, must exist, see: shelves.list)

 Note that Goodreads API documentation says that this endpoint accepts
 the read_at parameter but it does not appear to work as of 2018-06.