fuelsdk 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog.md CHANGED
@@ -1,9 +1,11 @@
1
1
  FuelSDK-Ruby
2
2
  ============
3
3
 
4
- 2013-09-19: Version 0.1.4
4
+ 2013-10-17: Version 0.1.5
5
5
  ```
6
6
  moved dataextension property munging into client so not required to instantiate those objects.
7
+
8
+ convert properties to array at last minute. fixes #14
7
9
  ```
8
10
 
9
11
  2013-09-18: Version 0.1.3
data/lib/fuelsdk.rb CHANGED
@@ -33,3 +33,6 @@ ET_UnsubEvent = FuelSDK::UnsubEvent
33
33
  ET_TriggeredSend = FuelSDK::TriggeredSend
34
34
  ET_Campaign = FuelSDK::Campaign
35
35
  ET_Get = FuelSDK::Get
36
+ ET_Post = FuelSDK::Post
37
+ ET_Delete = FuelSDK::Delete
38
+ ET_Patch = FuelSDK::Patch
@@ -4,7 +4,7 @@ module FuelSDK
4
4
  module Read
5
5
  attr_accessor :filter
6
6
  def get _id=nil
7
- client.soap_get _id||id, properties, filter
7
+ client.soap_get _id||id, Array.wrap(properties), filter
8
8
  end
9
9
 
10
10
  def info
@@ -14,15 +14,15 @@ module FuelSDK
14
14
 
15
15
  module CUD #create, update, delete
16
16
  def post
17
- client.soap_post id, properties
17
+ client.soap_post id, Array.wrap(properties)
18
18
  end
19
19
 
20
20
  def patch
21
- client.soap_patch id, properties
21
+ client.soap_patch id, Array.wrap(properties)
22
22
  end
23
23
 
24
24
  def delete
25
- client.soap_delete id, properties
25
+ client.soap_delete id, Array.wrap(properties)
26
26
  end
27
27
  end
28
28
  end
@@ -30,21 +30,21 @@ module FuelSDK
30
30
  module Rest
31
31
  module Read
32
32
  def get
33
- client.rest_get id, properties
33
+ client.rest_get id, Array.wrap(properties)
34
34
  end
35
35
  end
36
36
 
37
37
  module CUD
38
38
  def post
39
- client.rest_post id, properties
39
+ client.rest_post id, Array.wrap(properties)
40
40
  end
41
41
 
42
42
  def patch
43
- client.rest_patch id, properties
43
+ client.rest_patch id, Array.wrap(properties)
44
44
  end
45
45
 
46
46
  def delete
47
- client.rest_delete id, properties
47
+ client.rest_delete id, Array.wrap(properties)
48
48
  end
49
49
  end
50
50
  end
@@ -56,11 +56,6 @@ module FuelSDK
56
56
  alias props= properties= # backward compatibility
57
57
  alias authStub= client= # backward compatibility
58
58
 
59
- def properties
60
- @properties = [@properties].compact unless @properties.kind_of? Array
61
- @properties
62
- end
63
-
64
59
  def id
65
60
  self.class.id
66
61
  end
@@ -167,10 +162,6 @@ module FuelSDK
167
162
  'DataExtensionField'
168
163
  end
169
164
  def get
170
- if filter and filter.kind_of? Hash and \
171
- filter.include? 'Property' and filter['Property'] == 'CustomerKey'
172
- filter['Property'] = 'DataExtension.CustomerKey'
173
- end
174
165
  super
175
166
  end
176
167
  end
@@ -264,7 +255,7 @@ module FuelSDK
264
255
  raise 'Unable to handle muliple DataExtension definitions and a field definition'
265
256
  end
266
257
 
267
- d.each do |de|
258
+ Array.wrap(d).each do |de|
268
259
 
269
260
  if (explicit_fields(de) and (de['columns'] || de['fields'] || has_fields)) or
270
261
  (de['columns'] and (de['fields'] || has_fields)) or
@@ -345,4 +336,74 @@ module FuelSDK
345
336
  end
346
337
  end
347
338
  end
339
+
340
+ class Post < Objects::Base
341
+ include Objects::Soap::CUD
342
+ attr_accessor :id
343
+
344
+ def initialize client, id, properties
345
+ self.properties = properties
346
+ self.client = client
347
+ self.id = id
348
+ end
349
+
350
+ def post
351
+ super
352
+ end
353
+
354
+ class << self
355
+ def new client, id, properties=nil
356
+ o = self.allocate
357
+ o.send :initialize, client, id, properties
358
+ return o.post
359
+ end
360
+ end
361
+ end
362
+
363
+ class Delete < Objects::Base
364
+ include Objects::Soap::CUD
365
+ attr_accessor :id
366
+
367
+ def initialize client, id, properties
368
+ self.properties = properties
369
+ self.client = client
370
+ self.id = id
371
+ end
372
+
373
+ def delete
374
+ super
375
+ end
376
+
377
+ class << self
378
+ def new client, id, properties=nil
379
+ o = self.allocate
380
+ o.send :initialize, client, id, properties
381
+ return o.delete
382
+ end
383
+ end
384
+ end
385
+
386
+ class Patch < Objects::Base
387
+ include Objects::Soap::CUD
388
+ attr_accessor :id
389
+
390
+ def initialize client, id, properties
391
+ self.properties = properties
392
+ self.client = client
393
+ self.id = id
394
+ end
395
+
396
+ def patch
397
+ super
398
+ end
399
+
400
+ class << self
401
+ def new client, id, properties=nil
402
+ o = self.allocate
403
+ o.send :initialize, client, id, properties
404
+ return o.patch
405
+ end
406
+ end
407
+ end
408
+
348
409
  end
data/lib/fuelsdk/soap.rb CHANGED
@@ -247,8 +247,19 @@ module FuelSDK
247
247
  }
248
248
  end
249
249
 
250
- def normalize_filter filter
250
+ def normalize_customer_key filter, object_type
251
+ filter.tap do |f|
252
+ if is_a_dataextension? object_type
253
+ if filter['Property'] == 'CustomerKey'
254
+ f['Property'] = 'DataExtension.CustomerKey'
255
+ end
256
+ end
257
+ end
258
+ end
259
+
260
+ def normalize_filter filter, object_type=''
251
261
  if filter and filter.kind_of? Hash
262
+ normalize_customer_key filter, object_type
252
263
  if filter.has_key?('LogicalOperator')
253
264
  add_complex_filter_part filter
254
265
  else
@@ -338,7 +349,7 @@ module FuelSDK
338
349
  end
339
350
 
340
351
  def is_a_dataextension? object_type
341
- object_type == 'DataExtensionObject'
352
+ object_type.start_with? 'DataExtension'
342
353
  end
343
354
 
344
355
  def format_object_cud_properties object_type, properties
@@ -1,3 +1,3 @@
1
1
  module FuelSDK
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
data/spec/objects_spec.rb CHANGED
@@ -6,13 +6,13 @@ describe FuelSDK::Objects::Base do
6
6
  subject{ object }
7
7
 
8
8
  describe '#properties' do
9
- it 'is empty by default' do
10
- expect(object.properties).to be_empty
9
+ it 'is nil by default' do
10
+ expect(object.properties).to be_nil
11
11
  end
12
12
 
13
- it 'returns item in array when item is not an array' do
13
+ it 'returns property' do
14
14
  object.properties = {'name' => 'value'}
15
- expect(object.properties).to eq([{'name' => 'value'}])
15
+ expect(object.properties).to eq({'name' => 'value'})
16
16
  end
17
17
 
18
18
  it 'returns array when assigned array' do
@@ -254,4 +254,16 @@ describe FuelSDK::Soap do
254
254
  end
255
255
  end
256
256
 
257
+ describe '#normalize_customer_key' do
258
+ it 'changes CustomerKey to DataExtension.CustomerKey' do
259
+ expect(client.normalize_customer_key({'Property' => 'CustomerKey'}, 'DataExtensionField'))
260
+ .to eq({'Property' => 'DataExtension.CustomerKey'})
261
+ end
262
+
263
+ it 'nothing changes if object is not a DataExtension' do
264
+ expect(client.normalize_customer_key({'Property' => 'CustomerKey'}, 'SomethingObject'))
265
+ .to eq({'Property' => 'CustomerKey'})
266
+ end
267
+ end
268
+
257
269
  end
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
4
+ version: 0.1.5
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-19 00:00:00.000000000 Z
13
+ date: 2013-10-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler