peat 0.0.4 → 0.0.5

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: e5fa245529382701a1bfd48b654da15cd8f3cd21
4
- data.tar.gz: 6493470249ed7d19be5c0168bfded39baec7eca1
3
+ metadata.gz: 41c65100d648379520dc5052704759855a56fa65
4
+ data.tar.gz: 85cb807ffd5ec5e054e11e21337b364b34923df1
5
5
  SHA512:
6
- metadata.gz: 2720755ef61407418d8503d9943987afbc3998cd21951a78e3d418e598b40f09f45dd4c399a45a0722953a021a41bd56c10f52b637bc2558a9ce14b5f894ada0
7
- data.tar.gz: 6af89e948d1167dbf4fbb4f04ab19e66e4860823075795219dbb37a67f1320f4ed31113b13e860da788ba97e0d20b7b2e6ccbcd9cd7862c2a4f13cce20fab91d
6
+ metadata.gz: aa237a24c04a8d10f5d63afe3ab9c2d72db5f3d861b5478b8e4aa6e6e474a8d12b681daa580ff789273ee2ac70a13ae27e46fac15630f3bf1ca75fe60fd16bbf
7
+ data.tar.gz: 25fdde4566320c272e6f60d2cd67ebb82c01718376f853a7ef6284f54c9a318cc0ec3cafe429aa604a72e4701f8a5da141735586be5e716d79b2f02a78a8d9cb
@@ -2,21 +2,25 @@ module Peat
2
2
  module TokenManager
3
3
  module_function
4
4
 
5
- def token
5
+ def token(fuel_client_id: nil, fuel_secret: nil)
6
6
  fetch_token do
7
+ client_id = fuel_client_id || ENV['FUEL_CLIENT_ID'] || $fuel_client_id
8
+ secret = fuel_secret || ENV['FUEL_SECRET'] || $fuel_secret
9
+ raise MissingConfiguration, 'You must set values for fuel client id and secret' unless client_id && secret
10
+
7
11
  connection.post do |req|
8
12
  req.url 'requestToken'
9
13
  req.headers['Content-Type'] = 'application/json'
10
14
  req.body = {
11
- 'clientId' => ENV['FUEL_CLIENT_ID'] || $fuel_client_id,
12
- 'clientSecret' => ENV['FUEL_SECRET'] || $fuel_secret,
15
+ 'clientId' => client_id,
16
+ 'clientSecret' => secret,
13
17
  }.to_json
14
18
  end.body.merge('created_at' => Time.now)
15
19
  end
16
20
  end
17
21
 
18
22
  def connection
19
- @connection = Faraday.new(url: 'https://auth.exacttargetapis.com/v1/') do |conn|
23
+ @connection ||= Faraday.new(url: 'https://auth.exacttargetapis.com/v1/') do |conn|
20
24
  conn.request :json
21
25
 
22
26
  conn.response :logger
data/lib/peat/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Peat
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/peat.rb CHANGED
@@ -2,6 +2,8 @@ require "peat/version"
2
2
  require 'faraday_middleware'
3
3
 
4
4
  module Peat
5
+ class MissingConfiguration < Exception; end
6
+
5
7
  autoload :TokenManager, 'peat/token_manager'
6
8
  autoload :Client, 'peat/client'
7
9
  end
@@ -4,27 +4,86 @@ require 'active_support/core_ext'
4
4
 
5
5
  module Peat
6
6
  describe TokenManager do
7
+ before do
8
+ test = Faraday.new(url: 'https://auth.exacttargetapis.com/v1/') do |builder|
9
+ builder.adapter :test do |stub|
10
+ stub.post('v1/requestToken') { |env|
11
+ [ 200, {}, {'accessToken' => 'foobar123' }]
12
+ }
13
+ end
14
+ end
15
+ allow(TokenManager).to receive(:connection).and_return(test)
16
+ end
17
+
18
+ after do
19
+ TokenManager.instance_variable_set('@token', nil)
20
+ end
21
+
22
+ context 'configuring fuel client id and secret' do
23
+ context 'no creds set' do
24
+ it 'raises MissingConfiguration if no fuel credentials set' do
25
+ expect { Peat::TokenManager.token }.to raise_error(MissingConfiguration, 'You must set values for fuel client id and secret')
26
+ end
27
+ end
28
+
29
+ context 'client and secret passed in' do
30
+ it 'uses passed in client and secret' do
31
+ expect { Peat::TokenManager.token(fuel_client_id: 'foo', fuel_secret: 'bar') }.not_to raise_error
32
+ end
33
+ end
34
+
35
+ context 'client and secret set in env' do
36
+ around(:each) do |example|
37
+ ENV['FUEL_CLIENT_ID'] = 'foo'
38
+ ENV['FUEL_SECRET'] = 'bar'
39
+ example.run
40
+ ENV['FUEL_CLIENT_ID'] = nil
41
+ ENV['FUEL_SECRET'] = nil
42
+ end
43
+
44
+ it 'uses FUEL_CLIENT_ID and FUEL_SECRET from env if not passed in values' do
45
+ expect { Peat::TokenManager.token }.not_to raise_error
46
+ end
47
+ end
48
+
49
+ context 'client and secret set globally' do
50
+ around(:each) do |example|
51
+ $fuel_client_id, $fuel_secret = %w(foo bar)
52
+ example.run
53
+ $fuel_client_id, $fuel_secret = %w(nil nil)
54
+ end
55
+
56
+ it 'uses global $fuel_client_id and $fuel_secret if no values passed in or set in env' do
57
+ expect { Peat::TokenManager.token }.not_to raise_error
58
+ end
59
+ end
60
+ end
61
+
7
62
  context 'token is nil' do
8
63
  it 'fetches token' do
9
- expect(TokenManager).to receive(:fetch_token)
10
- TokenManager.token
64
+ expect(TokenManager.token).to eq('foobar123')
11
65
  end
12
66
  end
13
67
 
14
68
  context 'token is expired' do
69
+ before do
70
+ TokenManager.instance_variable_set('@token', { 'accessToken' => 'expired', 'created_at' => 1.hour.ago })
71
+ end
72
+
15
73
  it 'fetches token' do
16
- TokenManager.instance_variable_set('@token', { 'created_at' => 1.hour.ago })
17
- expect(TokenManager).to receive(:fetch_token)
18
- TokenManager.token
74
+ expect(TokenManager.token).to eq('foobar123')
19
75
  end
20
76
  end
21
77
 
22
78
  context 'token is present and not expired' do
23
- it 'returns token' do
24
- token = { 'accessToken' => 'foobar123', 'created_at' => 1.day.from_now }
25
- TokenManager.instance_variable_set('@token', token)
26
- expect(TokenManager.token).to eql('foobar123')
27
- end
79
+ before
80
+ token = { 'accessToken' => 'valid', 'created_at' => 1.day.from_now }
81
+ TokenManager.instance_variable_set('@token', token)
82
+ end
83
+
84
+ it 'returns token' do
85
+ expect(TokenManager.token).to eql('valid')
28
86
  end
29
87
  end
88
+
30
89
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hubert Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-07 00:00:00.000000000 Z
11
+ date: 2015-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday