diff --git a/.travis.yml b/.travis.yml index 8ee1bede..eb76cd82 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ sudo: false env: global: # If changing this number, please also change it in `test/test_helper.rb`. - - STRIPE_MOCK_VERSION=0.25.0 + - STRIPE_MOCK_VERSION=0.26.0 cache: directories: diff --git a/lib/stripe.rb b/lib/stripe.rb index 77415929..10bd41d0 100644 --- a/lib/stripe.rb +++ b/lib/stripe.rb @@ -89,6 +89,7 @@ require "stripe/token" require "stripe/topup" require "stripe/transfer" require "stripe/usage_record" +require "stripe/usage_record_summary" # OAuth require "stripe/oauth" diff --git a/lib/stripe/subscription_item.rb b/lib/stripe/subscription_item.rb index 2e8704fc..dd189aba 100644 --- a/lib/stripe/subscription_item.rb +++ b/lib/stripe/subscription_item.rb @@ -8,5 +8,10 @@ module Stripe include Stripe::APIOperations::Save OBJECT_NAME = "subscription_item".freeze + + def usage_record_summaries(params = {}, opts = {}) + resp, opts = request(:get, resource_url + "/usage_record_summaries", params, Util.normalize_opts(opts)) + Util.convert_to_stripe_object(resp.data, opts) + end end end diff --git a/lib/stripe/usage_record_summary.rb b/lib/stripe/usage_record_summary.rb new file mode 100644 index 00000000..9b9e515c --- /dev/null +++ b/lib/stripe/usage_record_summary.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module Stripe + class UsageRecordSummary < StripeObject + OBJECT_NAME = "usage_record_summary".freeze + end +end diff --git a/lib/stripe/util.rb b/lib/stripe/util.rb index 2b00fabf..061e54e0 100644 --- a/lib/stripe/util.rb +++ b/lib/stripe/util.rb @@ -98,6 +98,7 @@ module Stripe Topup::OBJECT_NAME => Topup, Transfer::OBJECT_NAME => Transfer, UsageRecord::OBJECT_NAME => UsageRecord, + UsageRecordSummary::OBJECT_NAME => UsageRecordSummary, } end diff --git a/test/stripe/usage_record_summary_test.rb b/test/stripe/usage_record_summary_test.rb new file mode 100644 index 00000000..2b2d48b2 --- /dev/null +++ b/test/stripe/usage_record_summary_test.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require File.expand_path("../../test_helper", __FILE__) + +module Stripe + class UsageRecordSummaryTest < Test::Unit::TestCase + setup do + @sub_item = Stripe::SubscriptionItem.retrieve("si_123") + end + + should "be listable" do + transactions = @sub_item.usage_record_summaries + + assert_requested :get, "#{Stripe.api_base}/v1/subscription_items/#{@sub_item.id}/usage_record_summaries" + assert transactions.data.is_a?(Array) + assert transactions.first.is_a?(Stripe::UsageRecordSummary) + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb index 9073ad0b..ee35615b 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -16,7 +16,7 @@ PROJECT_ROOT = File.expand_path("../../", __FILE__) require File.expand_path("../test_data", __FILE__) # If changing this number, please also change it in `.travis.yml`. -MOCK_MINIMUM_VERSION = "0.25.0".freeze +MOCK_MINIMUM_VERSION = "0.26.0".freeze MOCK_PORT = ENV["STRIPE_MOCK_PORT"] || 12_111 # Disable all real network connections except those that are outgoing to