rdstation-ruby-client 2.8.2 → 2.9.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
  SHA256:
3
- metadata.gz: 365408ab365bf2acacec98dfa4765b19b642a90a1d6fce3edccd09db8e10e0e3
4
- data.tar.gz: 9296202984e88f88c38114be6fca87e68f4d87a3693fc7d4f2765c5f63b4821c
3
+ metadata.gz: c3de60aebf7582be38403250a4d049f3428241b66a18acb085cdd71f542cb8a0
4
+ data.tar.gz: '0829e4b85cae5dd80c64395f6e460ebb315fee92853d81a5feb263adaa2e3efe'
5
5
  SHA512:
6
- metadata.gz: 324fc169085b6b89ef45d509807f4286b8358f8f72e35a944659fef19623bb3280a316d1f3d50178275f2a8c0e39b6d15621ac7e7b01b9fc90ff0bac10601944
7
- data.tar.gz: 7ea2fc324339bcd68c22a0d9b0560e00fdd2289e7feda605819c22e516c566b6a2d80af0f14ef57b02de044a1f451a159ee727cc17457dd9197e44f255aaa2fc
6
+ metadata.gz: 1206caba197401915572f9bb66dd2c45ad2c019d8ce5899d0667753043066cce96edfc39207054549de900cf57e3eb1179c6e4bcf58bed5bac459ef37d49cc12
7
+ data.tar.gz: c27a1e2c5d5d3ef4ddc3cfc1f0369f9be0cf09c040147fe1409bcc6d77a3c4d2fc7f697f3d40db2f83fbc2a0c79cad61e9378d4cbc3eedc9df0fe9ec9eaa91ef
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## 2.9.0
2
+
3
+ ### Additions
4
+
5
+ #### 1. New Account client
6
+
7
+ Usage example:
8
+
9
+ ```ruby
10
+ client = RDStation::Client.new(access_token: 'access_token', refresh_token: 'refresh_token')
11
+ client.account.info
12
+ ```
13
+
14
+
1
15
  ## 2.8.2
2
16
 
3
17
  - Fix TooManyRequest handler
data/README.md CHANGED
@@ -20,7 +20,8 @@ Upgrading? Check the [migration guide](#Migration-guide) before bumping to a new
20
20
  8. [Segmentations](#Segmentations)
21
21
  9. [Analytics](#Analytics)
22
22
  10.[LandingPages](#LandingPages)
23
- 11.[Errors](#Errors)
23
+ 11.[Account](#Account)
24
+ 12.[Errors](#Errors)
24
25
  3. [Changelog](#Changelog)
25
26
  4. [Migration guide](#Migration-guide)
26
27
  1. [Upgrading from 1.2.x to 2.0.0](#Upgrading-from-1.2.x-to-2.0.0)
@@ -377,6 +378,16 @@ client = RDStation::Client.new(access_token: 'access_token', refresh_token: 'ref
377
378
  client.landing_pages.all
378
379
  ```
379
380
 
381
+ ### Account
382
+
383
+ Returns the account information.
384
+
385
+ ```ruby
386
+ client = RDStation::Client.new(access_token: 'access_token', refresh_token: 'refresh_token')
387
+ client.account.info
388
+ => {"name"=>"www.rdstation.com"}
389
+ ```
390
+
380
391
  ### Errors
381
392
 
382
393
  Each endpoint may raise errors accoording to the HTTP response code from RDStation:
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RDStation
4
+ class Account
5
+ include HTTParty
6
+ include ::RDStation::RetryableRequest
7
+
8
+ def initialize(authorization:)
9
+ @authorization = authorization
10
+ end
11
+
12
+ def info
13
+ retryable_request(@authorization) do |authorization|
14
+ response = self.class.get(base_url, headers: authorization.headers)
15
+ ApiResponse.build(response)
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def base_url(_path = '')
22
+ "#{RDStation.host}/marketing/account_info"
23
+ end
24
+ end
25
+ end
@@ -8,6 +8,10 @@ module RDStation
8
8
  )
9
9
  end
10
10
 
11
+ def account
12
+ @account ||= RDStation::Account.new(authorization: @authorization)
13
+ end
14
+
11
15
  def contacts
12
16
  @contacts ||= RDStation::Contacts.new(authorization: @authorization)
13
17
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RDStation
4
- VERSION = '2.8.2'
4
+ VERSION = '2.9.0'
5
5
  end
@@ -9,6 +9,7 @@ require 'rdstation/retryable_request'
9
9
  require 'rdstation/authentication'
10
10
  require 'rdstation/authorization'
11
11
  require 'rdstation/client'
12
+ require 'rdstation/account'
12
13
  require 'rdstation/contacts'
13
14
  require 'rdstation/events'
14
15
  require 'rdstation/fields'
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe RDStation::Account do
4
+ let(:client) do
5
+ described_class.new(authorization: RDStation::Authorization.new(access_token: 'access_token'))
6
+ end
7
+
8
+ let(:endpoint) { 'https://api.rd.services/marketing/account_info' }
9
+
10
+ let(:headers) do
11
+ {
12
+ 'Authorization' => 'Bearer access_token',
13
+ 'Content-Type' => 'application/json'
14
+ }
15
+ end
16
+
17
+ let(:error_handler) do
18
+ instance_double(RDStation::ErrorHandler, raise_error: 'mock raised errors')
19
+ end
20
+
21
+ before do
22
+ allow(RDStation::ErrorHandler).to receive(:new).and_return(error_handler)
23
+ end
24
+
25
+ describe '#info' do
26
+ it 'calls retryable_request' do
27
+ expect(client).to receive(:retryable_request)
28
+ client.info
29
+ end
30
+
31
+ context 'when the request is successful' do
32
+ before do
33
+ stub_request(:get, endpoint)
34
+ .with(headers: headers)
35
+ .to_return(status: 200, body: {name: 'www.rdstation.com'}.to_json)
36
+ end
37
+
38
+ it 'return RDSM account information' do
39
+ response = client.info
40
+ expect(response).to eq({ 'name' => 'www.rdstation.com'})
41
+ end
42
+ end
43
+
44
+ context 'when the response contains errors' do
45
+ before do
46
+ stub_request(:get, endpoint)
47
+ .with(headers: headers)
48
+ .to_return(status: 404, body: { 'errors' => ['not found'] }.to_json)
49
+ end
50
+
51
+ it 'calls raise_error on error handler' do
52
+ client.info
53
+ expect(error_handler).to have_received(:raise_error)
54
+ end
55
+ end
56
+ end
57
+ end
@@ -27,6 +27,11 @@ RSpec.describe RDStation::Client do
27
27
  expect(RDStation::Webhooks).to receive(:new).with({ authorization: mock_authorization }).and_call_original
28
28
  expect(client.webhooks).to be_instance_of RDStation::Webhooks
29
29
  end
30
+
31
+ it 'returns Account endpoint' do
32
+ expect(RDStation::Account).to receive(:new).with({ authorization: mock_authorization }).and_call_original
33
+ expect(client.account).to be_instance_of RDStation::Account
34
+ end
30
35
  end
31
36
 
32
37
  context "when access_token isn't given" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdstation-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.2
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo L F Casaretto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-02 00:00:00.000000000 Z
11
+ date: 2023-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -141,6 +141,7 @@ files:
141
141
  - Rakefile
142
142
  - lib/rdstation-ruby-client.rb
143
143
  - lib/rdstation.rb
144
+ - lib/rdstation/account.rb
144
145
  - lib/rdstation/analytics.rb
145
146
  - lib/rdstation/api_response.rb
146
147
  - lib/rdstation/authentication.rb
@@ -170,6 +171,7 @@ files:
170
171
  - lib/rdstation/webhooks.rb
171
172
  - rdstation-ruby-client.gemspec
172
173
  - spec/lib/rdstation-ruby-client_spec.rb
174
+ - spec/lib/rdstation/account_spec.rb
173
175
  - spec/lib/rdstation/analytics_spec.rb
174
176
  - spec/lib/rdstation/api_response_spec.rb
175
177
  - spec/lib/rdstation/authentication_spec.rb
@@ -222,6 +224,7 @@ specification_version: 4
222
224
  summary: Ruby API wrapper for RD Station
223
225
  test_files:
224
226
  - spec/lib/rdstation-ruby-client_spec.rb
227
+ - spec/lib/rdstation/account_spec.rb
225
228
  - spec/lib/rdstation/analytics_spec.rb
226
229
  - spec/lib/rdstation/api_response_spec.rb
227
230
  - spec/lib/rdstation/authentication_spec.rb