mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-06-06 00:01:04 -04:00
Add support for ephemeral keys (#549)
This commit is contained in:
parent
3f01024974
commit
d69ccfc1dd
@ -47,6 +47,7 @@ require 'stripe/country_spec'
|
|||||||
require 'stripe/coupon'
|
require 'stripe/coupon'
|
||||||
require 'stripe/customer'
|
require 'stripe/customer'
|
||||||
require 'stripe/dispute'
|
require 'stripe/dispute'
|
||||||
|
require 'stripe/ephemeral_key'
|
||||||
require 'stripe/event'
|
require 'stripe/event'
|
||||||
require 'stripe/file_upload'
|
require 'stripe/file_upload'
|
||||||
require 'stripe/invoice'
|
require 'stripe/invoice'
|
||||||
|
18
lib/stripe/ephemeral_key.rb
Normal file
18
lib/stripe/ephemeral_key.rb
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
module Stripe
|
||||||
|
class EphemeralKey < APIResource
|
||||||
|
extend Stripe::APIOperations::Create
|
||||||
|
include Stripe::APIOperations::Delete
|
||||||
|
|
||||||
|
OBJECT_NAME = 'ephemeral_key'
|
||||||
|
|
||||||
|
def self.resource_url
|
||||||
|
'/v1/ephemeral_keys'
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.create(params={}, opts={})
|
||||||
|
opts = Util.normalize_opts(opts)
|
||||||
|
raise ArgumentError.new('stripe_version must be specified to create an ephemeral key') if !opts[:stripe_version]
|
||||||
|
super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -39,6 +39,7 @@ module Stripe
|
|||||||
Coupon::OBJECT_NAME => Coupon,
|
Coupon::OBJECT_NAME => Coupon,
|
||||||
Customer::OBJECT_NAME => Customer,
|
Customer::OBJECT_NAME => Customer,
|
||||||
Dispute::OBJECT_NAME => Dispute,
|
Dispute::OBJECT_NAME => Dispute,
|
||||||
|
EphemeralKey::OBJECT_NAME => EphemeralKey,
|
||||||
Event::OBJECT_NAME => Event,
|
Event::OBJECT_NAME => Event,
|
||||||
FileUpload::OBJECT_NAME => FileUpload,
|
FileUpload::OBJECT_NAME => FileUpload,
|
||||||
Invoice::OBJECT_NAME => Invoice,
|
Invoice::OBJECT_NAME => Invoice,
|
||||||
|
88
test/stripe/ephemeral_key_test.rb
Normal file
88
test/stripe/ephemeral_key_test.rb
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
require File.expand_path('../../test_helper', __FILE__)
|
||||||
|
|
||||||
|
module Stripe
|
||||||
|
class EphemeralKeyTest < Test::Unit::TestCase
|
||||||
|
context "#create" do
|
||||||
|
FIXTURE = API_FIXTURES.fetch(:ephemeral_key_with_secret)
|
||||||
|
|
||||||
|
should "succeed" do
|
||||||
|
key = Stripe::EphemeralKey.create(
|
||||||
|
{customer:"cus_123"},
|
||||||
|
{stripe_version:"2017-05-25"}
|
||||||
|
)
|
||||||
|
|
||||||
|
assert_requested(
|
||||||
|
:post,
|
||||||
|
"#{Stripe.api_base}/v1/ephemeral_keys",
|
||||||
|
headers: {'Stripe-Version' => '2017-05-25'}
|
||||||
|
)
|
||||||
|
|
||||||
|
assert key.kind_of?(Stripe::EphemeralKey)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "#no global version" do
|
||||||
|
should "use the correct api version" do
|
||||||
|
key = Stripe::EphemeralKey.create(
|
||||||
|
{customer: "cus_123"},
|
||||||
|
{stripe_version: "2017-06-05"}
|
||||||
|
)
|
||||||
|
|
||||||
|
assert_requested(
|
||||||
|
:post,
|
||||||
|
"#{Stripe.api_base}/v1/ephemeral_keys",
|
||||||
|
headers: {'Stripe-Version' => '2017-06-05'}
|
||||||
|
)
|
||||||
|
|
||||||
|
assert key.kind_of?(Stripe::EphemeralKey)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "error without an explicit api version" do
|
||||||
|
e = assert_raises(ArgumentError) do
|
||||||
|
Stripe::EphemeralKey.create(customer: "cus_123")
|
||||||
|
end
|
||||||
|
assert_match("stripe_version must be specified", e.message)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "#with global version" do
|
||||||
|
setup do
|
||||||
|
Stripe.api_version = "2017-05-25"
|
||||||
|
end
|
||||||
|
|
||||||
|
teardown do
|
||||||
|
Stripe.api_version = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
should "use the correct api version" do
|
||||||
|
key = Stripe::EphemeralKey.create(
|
||||||
|
{customer: "cus_123"},
|
||||||
|
{stripe_version: "2017-05-25"}
|
||||||
|
)
|
||||||
|
|
||||||
|
assert key.kind_of?(Stripe::EphemeralKey)
|
||||||
|
end
|
||||||
|
|
||||||
|
should "error without an explicit api version" do
|
||||||
|
e = assert_raises(ArgumentError) do
|
||||||
|
Stripe::EphemeralKey.create(customer: "cus_123")
|
||||||
|
end
|
||||||
|
assert_match("stripe_version must be specified", e.message)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "#delete" do
|
||||||
|
FIXTURE = API_FIXTURES.fetch(:ephemeral_key)
|
||||||
|
|
||||||
|
should "succeed" do
|
||||||
|
key = Stripe::EphemeralKey.create(
|
||||||
|
{customer: 'cus_123'},
|
||||||
|
{stripe_version: '2017-05-25'}
|
||||||
|
)
|
||||||
|
|
||||||
|
key.delete
|
||||||
|
assert_requested :delete, "#{Stripe.api_base}/v1/ephemeral_keys/#{key.id}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user