fuelsdk 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog.md +13 -4
- data/README.md +1 -1
- data/fuelsdk.gemspec +1 -1
- data/lib/fuelsdk/client.rb +10 -5
- data/lib/fuelsdk/soap.rb +9 -0
- data/lib/fuelsdk/version.rb +1 -1
- data/spec/client_spec.rb +43 -16
- metadata +6 -6
data/ChangeLog.md
CHANGED
@@ -1,13 +1,22 @@
|
|
1
1
|
FuelSDK-Ruby
|
2
2
|
============
|
3
3
|
|
4
|
-
2013-09-
|
4
|
+
2013-09-18: Version 0.1.2
|
5
|
+
```
|
6
|
+
get properties for dataextension for retrieve and edit calls
|
7
|
+
|
8
|
+
clear soap client on refresh so the client gets re-established with header with new token
|
9
|
+
|
10
|
+
refresh tests
|
11
|
+
```
|
12
|
+
|
13
|
+
2013-09-11: Version 0.1.1
|
5
14
|
```
|
6
15
|
Added ChangeLog
|
7
|
-
|
16
|
+
|
8
17
|
soap_configure, soap_perform with supporting tests
|
9
|
-
|
18
|
+
|
10
19
|
make soap_cud more rubular and easier to read and support
|
11
|
-
|
20
|
+
|
12
21
|
fixed some issues when trying to make requests after being passed a jwt
|
13
22
|
```
|
data/README.md
CHANGED
@@ -81,7 +81,7 @@ All methods on Fuel SDK objects return a generic object that follows the same st
|
|
81
81
|
- code: HTTP Error Code (will always be 200 for SOAP requests)
|
82
82
|
- message: Text values containing more details in the event of an error
|
83
83
|
- results: Collection containing the details unique to the method called.
|
84
|
-
|
84
|
+
- more? - Boolean value that indicates on Get requests if more data is available.
|
85
85
|
|
86
86
|
|
87
87
|
## Samples ##
|
data/fuelsdk.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency "guard"
|
25
25
|
spec.add_development_dependency "guard-rspec"
|
26
26
|
|
27
|
-
spec.add_dependency "savon", "
|
27
|
+
spec.add_dependency "savon", "2.1.0"
|
28
28
|
spec.add_dependency "json", "~> 1.7.0"
|
29
29
|
spec.add_dependency "jwt", "~> 0.1.6"
|
30
30
|
spec.add_dependency "activesupport", "~> 3.2.8"
|
data/lib/fuelsdk/client.rb
CHANGED
@@ -90,15 +90,20 @@ module FuelSDK
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def request_token_options data
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
93
|
+
{
|
94
|
+
'data' => data,
|
95
|
+
'content_type' => 'application/json',
|
96
|
+
'params' => {'legacy' => 1}
|
97
|
+
}
|
98
|
+
end
|
99
|
+
|
100
|
+
def clear_clients
|
101
|
+
instance_variable_set '@soap_client', nil
|
98
102
|
end
|
99
103
|
|
100
104
|
def refresh force=false
|
101
105
|
if (self.auth_token.nil? || force)
|
106
|
+
clear_clients
|
102
107
|
options = request_token_options(request_token_data)
|
103
108
|
response = post("https://auth.exacttargetapis.com/v1/requestToken", options)
|
104
109
|
raise "Unable to refresh token: #{response['message']}" unless response.has_key?('accessToken')
|
data/lib/fuelsdk/soap.rb
CHANGED
@@ -139,6 +139,15 @@ module FuelSDK
|
|
139
139
|
rsp
|
140
140
|
end
|
141
141
|
|
142
|
+
def get_dataextension_properties dataextension
|
143
|
+
soap_get('DataExtensionField',
|
144
|
+
'Name',
|
145
|
+
'Property' => "DataExtension.CustomerKey",
|
146
|
+
'SimpleOperator' => 'equals',
|
147
|
+
'Value' => dataextension
|
148
|
+
).results.collect{|f| f[:name]}
|
149
|
+
end
|
150
|
+
|
142
151
|
def cache_properties action, object_type, properties
|
143
152
|
raise 'Properties should be in cache as a list' unless properties.kind_of? Array
|
144
153
|
cache[action][object_type] = properties
|
data/lib/fuelsdk/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -161,6 +161,49 @@ describe FuelSDK::Client do
|
|
161
161
|
|
162
162
|
let(:client) { FuelSDK::Client.new }
|
163
163
|
|
164
|
+
it 'does nothing if auth_token exists' do
|
165
|
+
client.should_receive(:auth_token).and_return(true)
|
166
|
+
client.should_not_receive(:clear_clients)
|
167
|
+
client.refresh
|
168
|
+
end
|
169
|
+
|
170
|
+
describe 'requests and sets new tokens' do
|
171
|
+
subject {
|
172
|
+
client.should_receive(:request_token_data)
|
173
|
+
client.should_receive(:request_token_options).and_return('options')
|
174
|
+
client.should_receive(:post)
|
175
|
+
.with("https://auth.exacttargetapis.com/v1/requestToken", 'options')
|
176
|
+
.and_return 'accessToken' => :access,
|
177
|
+
'legacyToken' => :legacy,
|
178
|
+
'refreshToken' => :refresh
|
179
|
+
client
|
180
|
+
}
|
181
|
+
it 'calls #clear_clients' do
|
182
|
+
subject.instance_variable_set '@soap_client', 'SOAP'
|
183
|
+
expect(subject.instance_variable_get '@soap_client').to eq 'SOAP'
|
184
|
+
subject.refresh
|
185
|
+
expect(subject.instance_variable_get '@soap_client').to be_nil
|
186
|
+
end
|
187
|
+
it 'sets auth_token' do
|
188
|
+
subject.refresh
|
189
|
+
expect(subject.auth_token).to eq :access
|
190
|
+
end
|
191
|
+
it 'sets internal_token' do
|
192
|
+
subject.refresh
|
193
|
+
expect(subject.internal_token).to eq :legacy
|
194
|
+
end
|
195
|
+
it 'sets refresh_token' do
|
196
|
+
subject.refresh
|
197
|
+
expect(subject.refresh_token).to eq :refresh
|
198
|
+
end
|
199
|
+
|
200
|
+
it 'sets auth_token when forced and auth_token is present' do
|
201
|
+
subject.auth_token = true
|
202
|
+
subject.refresh(true)
|
203
|
+
expect(subject.auth_token).to eq :access
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
164
207
|
context 'raises an exception' do
|
165
208
|
|
166
209
|
it 'when client id and secret are missing' do
|
@@ -177,22 +220,6 @@ describe FuelSDK::Client do
|
|
177
220
|
expect { client.refresh }.to raise_exception 'Require Client Id and Client Secret to refresh tokens'
|
178
221
|
end
|
179
222
|
end
|
180
|
-
|
181
|
-
#context 'posts' do
|
182
|
-
# let(:client) { FuelSDK::Client.new 'client' => { 'id' => 123, 'secret' => 'sssh'} }
|
183
|
-
# it 'accessType=offline' do
|
184
|
-
# client.stub(:post)
|
185
|
-
# .with({'clientId' => 123, 'secret' => 'ssh', 'accessType' => 'offline'})
|
186
|
-
# .and_return()
|
187
|
-
#end
|
188
|
-
|
189
|
-
#context 'updates' do
|
190
|
-
# let(:client) { FuelSDK::Client.new 'client' => { 'id' => 123, 'secret' => 'sssh'} }
|
191
|
-
|
192
|
-
# it 'access_token' do
|
193
|
-
# #client.stub(:post).
|
194
|
-
# end
|
195
|
-
#end
|
196
223
|
end
|
197
224
|
|
198
225
|
describe 'includes HTTPRequest' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fuelsdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-09-
|
13
|
+
date: 2013-09-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -97,17 +97,17 @@ dependencies:
|
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
98
98
|
none: false
|
99
99
|
requirements:
|
100
|
-
- -
|
100
|
+
- - '='
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
102
|
+
version: 2.1.0
|
103
103
|
type: :runtime
|
104
104
|
prerelease: false
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 2.1.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: json
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|