Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API Updates for beta branch #1127

Merged
merged 12 commits into from
Aug 25, 2022
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ jobs:
run: docker run -d -p 12111-12112:12111-12112 stripe/stripe-mock && sleep 5
- name: test
run: bundle install && bundle exec rake test
env:
GITHUB_TOKEN: ${{ secrets.github_token }}
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
COVERALLS_SERVICE_NAME: github-action

publish:
name: Publish
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## 7.2.0-beta.1 - 2022-08-23
* [#1122](https://github.com/stripe/stripe-ruby/pull/1122) API Updates for beta branch
- Updated stable APIs to the latest version
- `Stripe-Version` beta headers are not pinned by-default and need to be manually specified, please refer to [beta SDKs README section](https://github.com/stripe/stripe-ruby/blob/master/README.md#beta-sdks)
- `Stripe-Version` beta headers are not pinned by-default and need to be manually specified, please refer to [beta SDKs README section](https://github.com/stripe/stripe-ruby/blob/master/README.md#beta-sdks)

## 7.1.0 - 2022-08-19
* [#1116](https://github.com/stripe/stripe-ruby/pull/1116) API Updates
Expand Down
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ source "https://rubygems.org"
gemspec

group :development do
gem "coveralls_reborn", "~> 0.25.0" if RUBY_VERSION >= "3.1"
gem "mocha", "~> 0.13.2"
gem "rack", ">= 2.0.6"
gem "rake"
Expand Down
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v184
v185
30 changes: 26 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

[![Gem Version](https://badge.fury.io/rb/stripe.svg)](https://badge.fury.io/rb/stripe)
[![Build Status](https://github.com/stripe/stripe-ruby/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/stripe/stripe-ruby/actions?query=branch%3Amaster)
[![Coverage Status](https://coveralls.io/repos/github/stripe/stripe-ruby/badge.svg?branch=master)](https://coveralls.io/github/stripe/stripe-ruby?branch=master)

The Stripe Ruby library provides convenient access to the Stripe API from
applications written in the Ruby language. It includes a pre-defined set of
Expand All @@ -16,10 +17,6 @@ The library also provides other features. For example:
- Built-in mechanisms for the serialization of parameters according to the
expectations of Stripe's API.

## Support

New features and bug fixes are released on the latest major version of the Stripe Ruby library. If you are on an older major version, we recommend that you upgrade to the latest in order to use the new features and bug fixes including those for security vulnerabilities. Older major versions of the package will continue to be available for use, but will not be receiving any updates.

## Documentation

See the [Ruby API docs](https://stripe.com/docs/api?lang=ruby).
Expand Down Expand Up @@ -297,6 +294,31 @@ You can disable this behavior if you prefer:
Stripe.enable_telemetry = false
```

### Beta SDKs

Stripe has features in the beta phase that can be accessed via the beta version of this package.
We would love for you to try these and share feedback with us before these features reach the stable phase.
To install a beta version use `gem install` with the exact version you'd like to use:

```sh
gem install stripe -v 7.1.0.pre.beta.2
```

> **Note**
> There can be breaking changes between beta versions. Therefore we recommend pinning the package version to a specific beta version in your Gemfile. This way you can install the same version each time without breaking changes unless you are intentionally looking for the latest beta version.

We highly recommend keeping an eye on when the beta feature you are interested in goes from beta to stable so that you can move from using a beta version of the SDK to the stable version.

If your beta feature requires a `Stripe-Version` header to be sent, use the `Stripe.api_version` field to set it:

```python
Stripe.api_version += "; feature_beta=v3"
```

## Support

New features and bug fixes are released on the latest major version of the Stripe Ruby library. If you are on an older major version, we recommend that you upgrade to the latest in order to use the new features and bug fixes including those for security vulnerabilities. Older major versions of the package will continue to be available for use, but will not be receiving any updates.

## Development

The test suite depends on [stripe-mock], so make sure to fetch and run it from a
Expand Down
2 changes: 2 additions & 0 deletions lib/stripe/object_types.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ def self.object_names_to_classes
FinancialConnections::AccountOwnership,
FinancialConnections::Session::OBJECT_NAME => FinancialConnections::Session,
FundingInstructions::OBJECT_NAME => FundingInstructions,
GiftCards::Card::OBJECT_NAME => GiftCards::Card,
GiftCards::Transaction::OBJECT_NAME => GiftCards::Transaction,
Identity::VerificationReport::OBJECT_NAME => Identity::VerificationReport,
Identity::VerificationSession::OBJECT_NAME => Identity::VerificationSession,
Invoice::OBJECT_NAME => Invoice,
Expand Down
2 changes: 2 additions & 0 deletions lib/stripe/resources.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
require "stripe/resources/financial_connections/account_ownership"
require "stripe/resources/financial_connections/session"
require "stripe/resources/funding_instructions"
require "stripe/resources/gift_cards/card"
require "stripe/resources/gift_cards/transaction"
require "stripe/resources/identity/verification_report"
require "stripe/resources/identity/verification_session"
require "stripe/resources/invoice"
Expand Down
25 changes: 25 additions & 0 deletions lib/stripe/resources/gift_cards/card.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true

module Stripe
module GiftCards
# A gift card represents a single gift card owned by a customer, including the
# remaining balance, gift card code, and whether or not it is active.
class Card < APIResource
extend Stripe::APIOperations::Create
extend Stripe::APIOperations::List
include Stripe::APIOperations::Save

OBJECT_NAME = "gift_cards.card"

def self.validate(params = {}, opts = {})
request_stripe_object(
method: :post,
path: "/v1/gift_cards/cards/validate",
params: params,
opts: opts
)
end
end
end
end
56 changes: 56 additions & 0 deletions lib/stripe/resources/gift_cards/transaction.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# File generated from our OpenAPI spec
# frozen_string_literal: true

module Stripe
module GiftCards
# A gift card transaction represents a single transaction on a referenced gift card.
# A transaction is in one of three states, `confirmed`, `held` or `canceled`. A `confirmed`
# transaction is one that has added/deducted funds. A `held` transaction has created a
# temporary hold on funds, which can then be cancelled or confirmed. A `held` transaction
# can be confirmed into a `confirmed` transaction, or canceled into a `canceled` transaction.
# A `canceled` transaction has no effect on a gift card's balance.
class Transaction < APIResource
extend Stripe::APIOperations::Create
extend Stripe::APIOperations::List
include Stripe::APIOperations::Save

OBJECT_NAME = "gift_cards.transaction"

def cancel(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end

def confirm(params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
params: params,
opts: opts
)
end

def self.cancel(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end

def self.confirm(id, params = {}, opts = {})
request_stripe_object(
method: :post,
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
params: params,
opts: opts
)
end
end
end
end
8 changes: 8 additions & 0 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# frozen_string_literal: true

# Report test coverage to coveralls for only one Ruby version to avoid
# repeated builds. This also accounts for coveralls_reborn requiring
# RUBY_VERSION >= 2.5.
if RUBY_VERSION.start_with?("3.1.")
require "coveralls"
Coveralls.wear!
end

require "stripe"
require "test/unit"
require "mocha/setup"
Expand Down