bitreserve 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 22fd7b702c886113b8b2c1c6e382721f4b0c84df
4
- data.tar.gz: b24e3a7fb9626dbaab357683a2fb3645bac2d64a
3
+ metadata.gz: f186b06c781c63fe87bc6e16c2528b51fe2f9c6a
4
+ data.tar.gz: bd8d53c2aa34b64500f6a2bebe7d616510452d84
5
5
  SHA512:
6
- metadata.gz: cd8989fe44205b5660954800ffd3b1934066d341e4d495e2fb0555bb28f3f8485d956d10eb224365d7417573b63c37d75c51621f2182fb96a9d7f36acc5b08d6
7
- data.tar.gz: 2eb14790b044dce1b71264fc1267dbfde5637bf17042bc119aaecfb6f852190ee2a4b3361ac383f51925669a7f9657094958fb2d896294e63ede9caa202fd557
6
+ metadata.gz: b6ae05f969c7e315f6c6f1723c9269b7c8962678b93f5971d75bca765110223fe0e978995e026ad445729c342e72388e0d4c7b56e235f8a576247f8979dec98f
7
+ data.tar.gz: 94e73c2fb2aa3d2c6c17854f4d5277c71eab2fa138ece11256aff22c10482652b153fe7833eb8b15beab284176ae45b5c9f63dc1e16a8d748e66ee5f328d5315
data/README.md CHANGED
@@ -5,9 +5,9 @@
5
5
  [![Code Climate](https://codeclimate.com/github/groupbuddies/bitreserve/badges/gpa.svg)](https://codeclimate.com/github/groupbuddies/bitreserve)
6
6
  [![Test Coverage](https://codeclimate.com/github/groupbuddies/bitreserve/badges/coverage.svg)](https://codeclimate.com/github/groupbuddies/bitreserve)
7
7
 
8
- TODO: Write a gem description
8
+ A ruby client for the [Bitreserve](https://bitreserve.org/) API.
9
9
 
10
- ## Installation
10
+ # Installation
11
11
 
12
12
  Add this line to your application's Gemfile:
13
13
 
@@ -23,14 +23,245 @@ Or install it yourself as:
23
23
 
24
24
  $ gem install bitreserve
25
25
 
26
- ## Usage
26
+ # Contents
27
27
 
28
- TODO: Write usage instructions here
28
+ * [Usage](#usage)
29
+ * [Creating an authenticated client](#creating-an-authenticated-client)
30
+ * [Personal Access Token](#personal-access-token)
31
+ * [Via argument](#via-argument)
32
+ * [Via environment variable](#via-environment-variable)
33
+ * [Endpoints](#endpoints)
34
+ * [Authentication](#authentication)
35
+ * [OAuth2](#oauth2)
36
+ * [Basic Authentication](#basic-authentication)
37
+ * [Tickers](#tickers)
38
+ * [Entities](#entities)
39
+ * [Cards](#cards)
40
+ * [Transactions](#transactions)
41
+ * [Public Transactions](#public-transactions)
42
+ * [Private Transactions](#private-transactions)
43
+ * [Contacts](#contacts)
44
+ * [Users](#users)
45
+ * [Transparency](#transparency)
46
+ * [Contributing](#contributing)
29
47
 
30
- ## Contributing
48
+ # Usage
31
49
 
32
- 1. Fork it ( https://github.com/[my-github-username]/bitreserve/fork )
50
+ To use the gem, you have to instantiate a client. All API calls are made from there. Here's a minimal working example:
51
+
52
+ ```ruby
53
+ require 'bitreserve'
54
+
55
+ client = Bitreserve::Client.new
56
+ puts client.all_tickers
57
+ ```
58
+
59
+ # Creating an authenticated client
60
+
61
+ In order to make most of the API calls, you will need to authenticate your
62
+ client. Here's how you can do that.
63
+
64
+ ## Personal Access Token
65
+
66
+ If you already have a token, you can use it by setting an environment variable,
67
+ or by passing it when instantiating the client.
68
+
69
+ ### Via argument
70
+
71
+ Pass the token to the constructor:
72
+
73
+ ```ruby
74
+ Bitreserve::Client.new(token: 'your-access-token')
75
+ ```
76
+
77
+ ### Via environment variable
78
+
79
+ Set the environment variable using [dotenv](https://github.com/bkeepers/dotenv), or by exporting it in your shell:
80
+
81
+ ```bash
82
+ $ export BITRESERVE_AUTH_TOKEN="your-access-token"
83
+ ```
84
+
85
+ Then instantiate the client:
86
+
87
+ ```ruby
88
+ Bitreserve::Client.new
89
+ ```
90
+
91
+ # Endpoints
92
+
93
+ This is a comprehensive list of all the mappings between this wrapper and the
94
+ Bitreserve's API.
95
+
96
+ ## Authentication
97
+
98
+ [*Bitreserve documentation on authentication*](https://developer.bitreserve.org/api/v0/#authentication)
99
+
100
+ ### OAuth2
101
+
102
+ **NOT SUPPORTED YET**
103
+
104
+ ### Basic Authentication
105
+
106
+ TODO
107
+
108
+ ## Tickers
109
+
110
+ [*Bitreserve documentation on tickers*](https://developer.bitreserve.org/api/v0/#tickers)
111
+
112
+ **Return the current rates on Bitreserve for all currency pairs:**
113
+
114
+ ```ruby
115
+ client.all_tickers
116
+ ```
117
+
118
+ **Return the current rates on Bitreserve for a specific currency:**
119
+
120
+ ```ruby
121
+ client.find_ticker(currency: 'EUR')
122
+ ```
123
+
124
+ ## Cards
125
+
126
+ [*Bitreserve documentation on cards*](https://developer.bitreserve.org/api/v0/#cards)
127
+
128
+ **Return all the user's cards:**
129
+
130
+ ```ruby
131
+ client.all_cards
132
+ ```
133
+
134
+ **Return the details for a specific card associated with the user:**
135
+
136
+ ```ruby
137
+ client.find_card(id: '37e002a7-8508-4268-a18c-7335a6ddf24b')
138
+ ```
139
+
140
+ **Create a card for the user:**
141
+
142
+ ```ruby
143
+ client.create_card(label: 'My label', currency: 'BTC')
144
+ ```
145
+
146
+ ## Transactions
147
+
148
+ [*Bitreserve documentation on transactions*](https://developer.bitreserve.org/api/v0/#transactions)
149
+
150
+ You can interact with both the authenticated user's and public transactions.
151
+
152
+ ### Public Transactions
153
+
154
+ **Return the public view of all transactions in the reserve:**
155
+
156
+ ```ruby
157
+ client.all_public_transactions
158
+ ```
159
+
160
+ **Return the public view of a specific transaction:**
161
+
162
+ ```ruby
163
+ client.find_public_transactions(id: 'a97bb994-6e24-4a89-b653-e0a6d0bcf634')
164
+ ```
165
+
166
+ ### Private Transactions
167
+
168
+ **Create a transaction:**
169
+
170
+ ```ruby
171
+ client.create_transaction(card_id: 'a6d35fcd-xxxx-9c9d1dda6d57', currency:
172
+ 'BTC', amount: 0.1, destination: 'foo@bar.com')
173
+ ```
174
+
175
+ **Commit a transaction:**
176
+
177
+ ```ruby
178
+ client.commit_transaction(card_id: 'a6d35fcd-xxxx-9c9d1dda6d57', transaction_id:
179
+ 'd51b4e4e-9827-40fb-8763-e0ea2880085b')
180
+ ```
181
+
182
+ **Cancel a transaction:**
183
+
184
+ ```ruby
185
+ client.cancel_transaction(card_id: 'a6d35fcd-xxxx-9c9d1dda6d57', transaction_id:
186
+ 'd51b4e4e-9827-40fb-8763-e0ea2880085b')
187
+ ```
188
+
189
+ **Resend a transaction:**
190
+
191
+ ```ruby
192
+ client.resend_transaction(card_id: 'a6d35fcd-xxxx-9c9d1dda6d57', transaction_id:
193
+ 'd51b4e4e-9827-40fb-8763-e0ea2880085b')
194
+ ```
195
+
196
+ **Return all transactions associated with the user:**
197
+
198
+ ```ruby
199
+ client.all_user_transactions
200
+ ```
201
+
202
+ **Return all transactions associated with a card:**
203
+
204
+ ```ruby
205
+ client.all_card_transactions
206
+ ```
207
+
208
+ ## Contacts
209
+
210
+ [*Bitreserve documentation on contacts*](https://developer.bitreserve.org/api/v0/#contacts)
211
+
212
+ **Return all the user's contacts:**
213
+
214
+ ```ruby
215
+ client.all_contacts
216
+ ```
217
+
218
+ **Return the details for a specific contact associated with the user:**
219
+
220
+ ```ruby
221
+ client.find_contact(id: '9fae84eb-712d-4b6a-9b2c-764bdde4c079')
222
+ ```
223
+
224
+ **Create a contact for the user:**
225
+
226
+ ```ruby
227
+ client.create_contact(first_name: 'Luke', last_name: 'Skywalker', company: 'Lars
228
+ Moisture Farm Inc', emails: ['support@larsmoisturefarm.com')
229
+ ```
230
+
231
+ ## Users
232
+
233
+ [*Bitreserve documentation on users*](https://developer.bitreserve.org/api/v0/#users)
234
+
235
+ **Return the details of the user:**
236
+
237
+ ```ruby
238
+ client.me
239
+ ```
240
+
241
+ **Return the list of phone numbers associated with the user:**
242
+
243
+ ```ruby
244
+ client.phones
245
+ ```
246
+
247
+ ## Transparency
248
+
249
+ [*Bitreserve documentation on transparency*](https://developer.bitreserve.org/api/v0/#reserve-status)
250
+
251
+ **Return a summary of all obligations and assets:**
252
+
253
+ ```ruby
254
+ client.statistics
255
+ ```
256
+
257
+ # Contributing
258
+
259
+ 1. Fork it ( https://github.com/groupbuddies/bitreserve/fork )
33
260
  2. Create your feature branch (`git checkout -b my-new-feature`)
34
- 3. Commit your changes (`git commit -am 'Add some feature'`)
261
+ 4. Commit your changes (`git commit -am 'Add some feature'`)
35
262
  4. Push to the branch (`git push origin my-new-feature`)
36
263
  5. Create a new Pull Request
264
+
265
+ # Copyright
266
+
267
+ Copyright (c) 2015 Group Buddies. See [LICENSE.txt](LICENSE.txt) for further details.
@@ -1,15 +1,16 @@
1
+ require 'base64'
2
+
1
3
  module Bitreserve
2
4
  module API
3
5
  module AuthToken
4
- def generate_access_token(username: '', password: '')
6
+ def generate_access_token(username: '', password: '', otp: '')
5
7
  request_data = Bitreserve::RequestData.new(
6
8
  Endpoints::AUTH,
7
9
  Entities::AuthToken,
8
- authorization_header,
9
- nil,
10
- username: username, password: password
10
+ { 'X-Bitreserve-OTP' => otp, 'Authorization' => 'Basic ' + Base64.encode64("#{username}:#{password}") },
11
+ description: 'Bitreserve ruby'
11
12
  )
12
- AuthRequest.perform_with_object(:post, request_data)
13
+ Request.perform_with_object(:post, request_data)
13
14
  end
14
15
  end
15
16
  end
@@ -1,6 +1,6 @@
1
1
  module Bitreserve
2
2
  module Endpoints
3
- AUTH = '/oauth2/tokens'
3
+ AUTH = '/me/tokens'
4
4
  CARD = '/me/cards'
5
5
  CARD_PRIVATE_TRANSACTIONS = CARD + '/:card/transactions'
6
6
  COMMIT_TRANSACTION = CARD_PRIVATE_TRANSACTIONS + '/:id/commit'
@@ -1,6 +1,7 @@
1
1
  module Bitreserve
2
- class BaseRequest
2
+ class Request
3
3
  include ::HTTParty
4
+ base_uri "#{Bitreserve.api_base}/v#{Bitreserve.api_version}"
4
5
 
5
6
  def self.perform_with_objects(http_method, request_data)
6
7
  response = new(request_data).public_send(http_method)
@@ -15,7 +16,6 @@ module Bitreserve
15
16
  def initialize(request_data)
16
17
  @path = request_data.endpoint
17
18
  @data = request_data.payload
18
- @auth = request_data.auth
19
19
  @headers = request_data.headers
20
20
  end
21
21
 
@@ -36,21 +36,13 @@ module Bitreserve
36
36
  attr_reader :path, :data, :auth, :headers
37
37
 
38
38
  def options
39
- { basic_auth: auth, body: data, headers: headers }.
39
+ { body: data, headers: headers }.
40
40
  reject { |_k, v| v.nil? }
41
41
  end
42
42
 
43
43
  def log_request_info(http_method, response)
44
- Bitreserve.logger.info "[Bitreserve] #{http_method.to_s.upcase} #{self.class.base_uri}#{path} #{self.class.headers} #{response.code}"
44
+ Bitreserve.logger.info "[Bitreserve] #{http_method.to_s.upcase} #{self.class.base_uri}#{path} #{options[:headers]} #{response.code}"
45
45
  Bitreserve.logger.debug response.parsed_response
46
46
  end
47
47
  end
48
-
49
- class Request < BaseRequest
50
- base_uri "#{Bitreserve.api_base}/v#{Bitreserve.api_version}"
51
- end
52
-
53
- class AuthRequest < Request
54
- base_uri Bitreserve.api_base
55
- end
56
48
  end
@@ -1,6 +1,6 @@
1
1
  module Bitreserve
2
- class RequestData < Struct.new(:endpoint, :entity, :headers, :payload, :auth)
3
- def initialize(endpoint, entity, headers = {}, payload = nil, auth = nil)
2
+ class RequestData < Struct.new(:endpoint, :entity, :headers, :payload)
3
+ def initialize(endpoint, entity, headers = {}, payload = nil)
4
4
  super
5
5
  end
6
6
  end
@@ -1,3 +1,3 @@
1
1
  module Bitreserve
2
- VERSION = '0.1.0'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://example:Password123@api.bitreserve.org/v0/me/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: description=Bitreserve%20ruby
9
+ headers:
10
+ X-Bitreserve-Otp:
11
+ - '5960110'
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Thu, 29 Jan 2015 16:24:12 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '106'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d8a73547e05f107f8c796bfcc238d8f851422548652; expires=Fri, 29-Jan-16
29
+ 16:24:12 GMT; path=/; domain=.bitreserve.org; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - DENY
45
+ X-Bitreserve-Request-Id:
46
+ - 9eed6cc1-c6f3-43ac-9acf-9286a83935c7
47
+ X-Ratelimit-Limit:
48
+ - '300'
49
+ X-Ratelimit-Remaining:
50
+ - '298'
51
+ X-Ratelimit-Reset:
52
+ - '1422548935'
53
+ Cf-Ray:
54
+ - 1b06c7540a6e0ddb-MAD
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"access_token":"853d580429364a90a6e02cb1f89e257a58da9064","description":"Bitreserve
58
+ ruby","expires":null}'
59
+ http_version:
60
+ recorded_at: Thu, 29 Jan 2015 16:24:14 GMT
61
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ module Bitreserve
4
+ module API
5
+ describe AuthToken do
6
+ let(:client) { Client.new }
7
+
8
+ context '#generate_access_token' do
9
+ it 'generates a personal access token' do
10
+ VCR.use_cassette('pats') do
11
+ token = client.generate_access_token(username: 'example', password: 'Password123', otp: '5960110')
12
+
13
+ expect(token).to be_a(Entities::AuthToken)
14
+ expect(token.access_token).to be_a(String)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -8,17 +8,4 @@ module WebMockHelpers
8
8
  WebMock::API.stub_request(method, Bitreserve::Request.base_uri + url).
9
9
  to_return(body: response.to_json, headers: { 'Content-Type' => 'application/json' })
10
10
  end
11
-
12
- def self.bitreserve_stub_request_with_auth(method, url, response = [], auth = nil)
13
- new_url = generate_auth_url(url, auth)
14
- WebMock::API.stub_request(method, new_url).
15
- to_return(body: response.to_json, headers: { 'Content-Type' => 'application/json' })
16
- end
17
-
18
- private
19
-
20
- def self.generate_auth_url(url, auth)
21
- uri = URI.parse(Bitreserve::AuthRequest.base_uri)
22
- uri.scheme + '://' + auth[:username] + ':' + auth[:password] + '@' + uri.host + url
23
- end
24
11
  end
@@ -7,14 +7,13 @@ module Bitreserve
7
7
 
8
8
  context '#generate_access_token' do
9
9
  it 'generates a personal access token' do
10
- auth = { username: 'user', password: 'pass' }
11
- request_data = RequestData.new(Endpoints::AUTH, Entities::AuthToken, client.authorization_header, nil, auth)
10
+ auth = { username: 'user', password: 'pass', otp: 'otp' }
12
11
  allow(Request).to receive(:perform_with_object)
13
12
 
14
13
  client.generate_access_token(auth)
15
14
 
16
15
  expect(Request).to have_received(:perform_with_object).
17
- with(:post, request_data)
16
+ with(:post, anything)
18
17
  end
19
18
  end
20
19
  end
@@ -4,7 +4,7 @@ module Bitreserve
4
4
  shared_examples 'perform request method' do |method_name|
5
5
  let(:object_class) { double('ObjectClass', new: nil, from_collection: nil) }
6
6
  let(:request) { spy('request') }
7
- let(:client) { Bitreserve::Client.new }
7
+ let(:client) { Client.new }
8
8
 
9
9
  context ".#{method_name}" do
10
10
  it 'makes the correct call for a GET' do
@@ -43,11 +43,24 @@ module Bitreserve
43
43
 
44
44
  expect(Request).to have_received(:post).with(url, body: data, headers: client.authorization_header)
45
45
  end
46
+
47
+ it 'makes a call with basic auth' do
48
+ url = '/some-url'
49
+ headers = { header1: 'I am a header' }
50
+ body = { description: 'whatever' }
51
+ request_data = RequestData.new(url, object_class, headers, body)
52
+ WebMockHelpers.bitreserve_stub_request(:get, url)
53
+ allow(Request).to receive(:get).and_call_original
54
+
55
+ Request.public_send(method_name, :get, request_data)
56
+
57
+ expect(Request).to have_received(:get).with(url, headers: headers, body: body)
58
+ end
46
59
  end
47
60
 
48
- def request_data(url = anything, client = nil, payload = nil, auth = nil)
61
+ def request_data(url = anything, client = nil, payload = nil)
49
62
  client ||= double('Client', authorization_header: {})
50
- RequestData.new(url, object_class, client.authorization_header, payload, auth)
63
+ RequestData.new(url, object_class, client.authorization_header, payload)
51
64
  end
52
65
  end
53
66
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitreserve
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Group Buddies
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-28 00:00:00.000000000 Z
11
+ date: 2015-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -177,10 +177,12 @@ files:
177
177
  - spec/fixtures/vcr_cassettes/me/transactions/create_waiting_cancel.yml
178
178
  - spec/fixtures/vcr_cassettes/me/transactions/create_waiting_resend.yml
179
179
  - spec/fixtures/vcr_cassettes/me/transactions/resend.yml
180
+ - spec/fixtures/vcr_cassettes/pats.yml
180
181
  - spec/fixtures/vcr_cassettes/reserve/transaction.yml
181
182
  - spec/fixtures/vcr_cassettes/reserve/transactions.yml
182
183
  - spec/fixtures/vcr_cassettes/tickers.yml
183
184
  - spec/fixtures/vcr_cassettes/transparency.yml
185
+ - spec/integration/api/auth_token_spec.rb
184
186
  - spec/integration/api/card_spec.rb
185
187
  - spec/integration/api/contact_spec.rb
186
188
  - spec/integration/api/private_transactions_spec.rb
@@ -199,7 +201,6 @@ files:
199
201
  - spec/unit/api/ticker_spec.rb
200
202
  - spec/unit/api/transparency_spec.rb
201
203
  - spec/unit/api/user_spec.rb
202
- - spec/unit/auth_request_spec.rb
203
204
  - spec/unit/client_spec.rb
204
205
  - spec/unit/entities/base_entity_spec.rb
205
206
  - spec/unit/entities/user_spec.rb
@@ -244,10 +245,12 @@ test_files:
244
245
  - spec/fixtures/vcr_cassettes/me/transactions/create_waiting_cancel.yml
245
246
  - spec/fixtures/vcr_cassettes/me/transactions/create_waiting_resend.yml
246
247
  - spec/fixtures/vcr_cassettes/me/transactions/resend.yml
248
+ - spec/fixtures/vcr_cassettes/pats.yml
247
249
  - spec/fixtures/vcr_cassettes/reserve/transaction.yml
248
250
  - spec/fixtures/vcr_cassettes/reserve/transactions.yml
249
251
  - spec/fixtures/vcr_cassettes/tickers.yml
250
252
  - spec/fixtures/vcr_cassettes/transparency.yml
253
+ - spec/integration/api/auth_token_spec.rb
251
254
  - spec/integration/api/card_spec.rb
252
255
  - spec/integration/api/contact_spec.rb
253
256
  - spec/integration/api/private_transactions_spec.rb
@@ -266,7 +269,6 @@ test_files:
266
269
  - spec/unit/api/ticker_spec.rb
267
270
  - spec/unit/api/transparency_spec.rb
268
271
  - spec/unit/api/user_spec.rb
269
- - spec/unit/auth_request_spec.rb
270
272
  - spec/unit/client_spec.rb
271
273
  - spec/unit/entities/base_entity_spec.rb
272
274
  - spec/unit/entities/user_spec.rb
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Bitreserve
4
- shared_examples 'perform auth request method' do |method_name|
5
- let(:object_class) { double('ObjectClass', new: nil, from_collection: nil) }
6
- let(:request) { spy('request') }
7
- let(:client) { Bitreserve::Client.new }
8
-
9
- context ".#{method_name}" do
10
- it 'makes a call with basic auth' do
11
- url = '/some-url'
12
- auth = { username: 'user', password: 'pass' }
13
- WebMockHelpers.bitreserve_stub_request_with_auth(:get, url, [], auth)
14
- allow(AuthRequest).to receive(:get).and_call_original
15
-
16
- AuthRequest.public_send(method_name, :get, request_data(url, client, nil, auth))
17
-
18
- expect(AuthRequest).to have_received(:get).with(url, basic_auth: auth, headers: client.authorization_header)
19
- end
20
- end
21
-
22
- def request_data(url = anything, client = nil, payload = nil, auth = nil)
23
- client ||= double('Client', authorization_header: {})
24
- RequestData.new(url, object_class, client.authorization_header, payload, auth)
25
- end
26
- end
27
-
28
- describe AuthRequest do
29
- include_examples 'perform auth request method', :perform_with_object
30
- include_examples 'perform auth request method', :perform_with_objects
31
- end
32
- end