From 0383de9dc28ab46127d93e41556e29d5ffc66c6f Mon Sep 17 00:00:00 2001 From: Remi Jannel Date: Tue, 27 Nov 2018 11:43:06 -0500 Subject: [PATCH] Add support for the Review resource --- .travis.yml | 2 +- lib/stripe.rb | 1 + lib/stripe/review.rb | 14 ++++++++++++++ lib/stripe/util.rb | 1 + test/stripe/review_test.rb | 27 +++++++++++++++++++++++++++ test/test_helper.rb | 2 +- 6 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 lib/stripe/review.rb create mode 100644 test/stripe/review_test.rb diff --git a/.travis.yml b/.travis.yml index 3169e499d..e8f9c31f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ sudo: false env: global: # If changing this number, please also change it in `test/test_helper.rb`. - - STRIPE_MOCK_VERSION=0.37.0 + - STRIPE_MOCK_VERSION=0.38.0 cache: directories: diff --git a/lib/stripe.rb b/lib/stripe.rb index b26a307fb..00701d590 100644 --- a/lib/stripe.rb +++ b/lib/stripe.rb @@ -83,6 +83,7 @@ require "stripe/reporting/report_run" require "stripe/reporting/report_type" require "stripe/reversal" +require "stripe/review" require "stripe/sigma/scheduled_query_run" require "stripe/sku" require "stripe/source" diff --git a/lib/stripe/review.rb b/lib/stripe/review.rb new file mode 100644 index 000000000..8e090e820 --- /dev/null +++ b/lib/stripe/review.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Stripe + class Review < APIResource + extend Stripe::APIOperations::List + + OBJECT_NAME = "review".freeze + + def approve(params = {}, opts = {}) + resp, opts = request(:post, resource_url + "/approve", params, opts) + initialize_from(resp.data, opts) + end + end +end diff --git a/lib/stripe/util.rb b/lib/stripe/util.rb index b1933687a..d6b40a16f 100644 --- a/lib/stripe/util.rb +++ b/lib/stripe/util.rb @@ -93,6 +93,7 @@ def self.object_classes # rubocop:disable Metrics/MethodLength Reporting::ReportRun::OBJECT_NAME => Reporting::ReportRun, Reporting::ReportType::OBJECT_NAME => Reporting::ReportType, Reversal::OBJECT_NAME => Reversal, + Review::OBJECT_NAME => Review, SKU::OBJECT_NAME => SKU, Sigma::ScheduledQueryRun::OBJECT_NAME => Sigma::ScheduledQueryRun, Source::OBJECT_NAME => Source, diff --git a/test/stripe/review_test.rb b/test/stripe/review_test.rb new file mode 100644 index 000000000..2b59e9be1 --- /dev/null +++ b/test/stripe/review_test.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require ::File.expand_path("../../test_helper", __FILE__) + +module Stripe + class ReviewTest < Test::Unit::TestCase + should "be listable" do + reviews = Stripe::Review.list + assert_requested :get, "#{Stripe.api_base}/v1/reviews" + assert reviews.data.is_a?(Array) + assert reviews.first.is_a?(Stripe::Review) + end + + should "be retrievable" do + review = Stripe::Review.retrieve("prv_123") + assert_requested :get, "#{Stripe.api_base}/v1/reviews/prv_123" + assert review.is_a?(Stripe::Review) + end + + should "be approvable" do + review = Stripe::Review.retrieve("prv_123") + review.approve + assert_requested :post, "#{Stripe.api_base}/v1/reviews/prv_123/approve" + assert review.is_a?(Stripe::Review) + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index be27d6a81..8496f1f4e 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -16,7 +16,7 @@ require ::File.expand_path("../test_data", __FILE__) # If changing this number, please also change it in `.travis.yml`. -MOCK_MINIMUM_VERSION = "0.37.0".freeze +MOCK_MINIMUM_VERSION = "0.38.0".freeze MOCK_PORT = ENV["STRIPE_MOCK_PORT"] || 12_111 # Disable all real network connections except those that are outgoing to