unresponsys 0.1.5 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7787a40a901dd1f290be14e6b187e300d4d1b798
4
- data.tar.gz: 1ae813f0ecd4aa5e292df6c552cb25db72bcc930
3
+ metadata.gz: c3375278f0085f82556ba6e0834ff185533c146b
4
+ data.tar.gz: 2df2e0417162bb417461a881af9eb941f1ef1f5a
5
5
  SHA512:
6
- metadata.gz: 58649be5a7617d9f6ca69088129e5f00e8c5ab8e9eb8e1196449afaabaff563cca009b278af1dae3177b37932009b5fb9966a936a81b422ea8f263713c6d1cc1
7
- data.tar.gz: d1ba79834e5e98df48afa2e6f7ce945892e8fe9c858807a06eed0ce683bf42ad53d013e430d7f63e39c7c765b7bf66f616c7cf6a7c6b9a3463198b3bca5e5c63
6
+ metadata.gz: 4d2d95e28319d9163d1c57007ea9f8b9e1597b1520ec163c68b0b931000f1ae52cd5e7188a7df588a8ad6255b68fb076125294eedbd932d04acc5cf3bce09d9d
7
+ data.tar.gz: ccccc45c99a4006261327841d7e1059171e0b654691482b35dae7f594915effdf626c0028535aa4c9f266ee8932e94ea566a5a379efd4974c48af7effc6389ea
@@ -7,7 +7,6 @@ class Unresponsys
7
7
  def initialize(options = {})
8
8
  @event_name = options[:event]
9
9
  @member = options[:member]
10
- @properties = options[:properties]
11
10
  end
12
11
 
13
12
  def save
@@ -18,14 +17,6 @@ class Unresponsys
18
17
  }]
19
18
  }
20
19
 
21
- # API throws an non-descriptive error if optionalData is present but empty
22
- if @properties.present?
23
- body[:recipientData].first[:optionalData] = []
24
- @properties.each_pair do |key, val|
25
- body[:recipientData].first[:optionalData] << { name: key.to_s, value: val.to_s }
26
- end
27
- end
28
-
29
20
  r = client.post("/events/#{@event_name}", body: body.to_json)
30
21
  return false if r.first['errorMessage'].present?
31
22
  true
@@ -0,0 +1,19 @@
1
+ class Unresponsys
2
+ class ExtensionTable
3
+ extend Forwardable
4
+ delegate [:client] => :list
5
+ attr_reader :list, :name
6
+
7
+ def initialize(member, table_name)
8
+ @member = member
9
+ @list = member.list
10
+ @name = table_name
11
+ end
12
+
13
+ def update(fields = {})
14
+ row = Unresponsys::Row.new(self, { 'RIID_' => @member.riid })
15
+ fields.each_pair { |field, value| row.send("#{field}=", value) }
16
+ row.save
17
+ end
18
+ end
19
+ end
@@ -7,17 +7,17 @@ class Unresponsys
7
7
  @name = name
8
8
  end
9
9
 
10
- def tables
11
- @tables ||= Tables.new(self)
10
+ def supplemental_tables
11
+ @supplemental_tables ||= SupplementalTables.new(self)
12
12
  end
13
13
 
14
- class Tables
14
+ class SupplementalTables
15
15
  def initialize(folder)
16
16
  @folder = folder
17
17
  end
18
18
 
19
19
  def find(table_name)
20
- Unresponsys::Table.new(@folder, table_name)
20
+ Unresponsys::SupplementalTable.new(@folder, table_name)
21
21
  end
22
22
  end
23
23
  end
@@ -29,10 +29,6 @@ class Unresponsys
29
29
  end
30
30
  end
31
31
 
32
- def email
33
- email_address
34
- end
35
-
36
32
  def save
37
33
  record_data = { fieldNames: [], records: [[]], mapTemplateName: nil }
38
34
  @changed.uniq.each do |key|
@@ -52,11 +48,6 @@ class Unresponsys
52
48
  true
53
49
  end
54
50
 
55
- def delete
56
- self.email_permission_status = 'O'
57
- self.save
58
- end
59
-
60
51
  # allow to access custom fields on new record
61
52
  def method_missing(sym, *args, &block)
62
53
  setter = sym.to_s.include?('=')
@@ -88,6 +79,20 @@ class Unresponsys
88
79
  end
89
80
  end
90
81
 
82
+ def extension_tables
83
+ @extension_tables ||= ExtensionTables.new(self)
84
+ end
85
+
86
+ class ExtensionTables
87
+ def initialize(member)
88
+ @member = member
89
+ end
90
+
91
+ def find(name)
92
+ Unresponsys::ExtensionTable.new(@member, name)
93
+ end
94
+ end
95
+
91
96
  private
92
97
 
93
98
  def default_fields
@@ -115,6 +120,16 @@ class Unresponsys
115
120
  EMAIL_MD5_HASH_
116
121
  EMAIL_SHA256_HASH_
117
122
  EMAIL_PERMISSION_REASON_
123
+ CREATED_SOURCE_IP_
124
+ EMAIL_DOMAIN_
125
+ EMAIL_ISP_
126
+ EMAIL_DELIVERABILITY_STATUS_
127
+ MOBILE_DELIVERABILITY_STATUS_
128
+ MOBILE_PERMISSION_REASON_
129
+ POSTAL_DELIVERABILITY_STATUS_
130
+ POSTAL_PERMISSION_REASON_
131
+ CREATED_DATE_
132
+ MODIFIED_DATE_
118
133
  )
119
134
  end
120
135
 
@@ -1,5 +1,9 @@
1
1
  class Unresponsys
2
2
  class Row
3
+ extend Forwardable
4
+ delegate [:client] => :table
5
+ attr_reader :table
6
+
3
7
  def initialize(table, fields)
4
8
  @table = table
5
9
  @fields = fields
@@ -10,7 +14,7 @@ class Unresponsys
10
14
  val = val.to_ruby
11
15
  self.instance_variable_set(var, val)
12
16
 
13
- if key == 'ID_'
17
+ if key == 'ID_' || 'RIID_'
14
18
  self.class.send(:attr_reader, str)
15
19
  else
16
20
  self.class.send(:define_method, "#{str}=") do |val|
@@ -22,24 +26,39 @@ class Unresponsys
22
26
  end
23
27
 
24
28
  def save
25
- record_data = { fieldNames: [], records: [[]], mapTemplateName: nil }
29
+ record_data = { fieldNames: [], records: [{ fieldValues: [] }], mapTemplateName: nil }
30
+
26
31
  @fields.each_pair do |key, val|
27
32
  record_data[:fieldNames] << key
28
33
  var = "@#{key.downcase.chomp('_')}".to_sym
29
34
  val = self.instance_variable_get(var)
30
35
  val = val.to_responsys
31
- record_data[:records][0] << val
36
+ record_data[:records][0][:fieldValues] << val
32
37
  end
33
38
 
34
- options = { body: { recordData: record_data, insertOnNoMatch: true, updateOnMatch: 'REPLACE_ALL' }.to_json }
35
- r = Unresponsys::Client.post("/folders/#{@table.folder.name}/suppData/#{@table.name}/members", options)
36
- r['recordData']['records'][0][0].exclude?('MERGEFAILED')
37
- end
39
+ options = {
40
+ body: {
41
+ recordData: record_data,
42
+ insertOnNoMatch: true,
43
+ updateOnMatch: 'REPLACE_ALL',
44
+ }
45
+ }
38
46
 
39
- def delete
40
- options = { query: { qa: 'ID_', id: @fields.primary_key } }
41
- r = Unresponsys::Client.delete("/folders/#{@table.folder.name}/suppData/#{@table.name}/members", options)
42
- r['recordData']['records'][0][0].exclude?('DELETEFAILED')
47
+ if @table.class == Unresponsys::SupplementalTable
48
+ url = "/folders/#{@table.folder.name}/suppData/#{@table.name}"
49
+ else
50
+ options[:body][:matchColumn] = 'RIID'
51
+ url = "/lists/#{@table.list.name}/listExtensions/#{@table.name}"
52
+ end
53
+
54
+ options[:body] = options[:body].to_json
55
+ r = client.post(url, options)
56
+
57
+ if @table.class == Unresponsys::SupplementalTable
58
+ r['errorMessage'].blank?
59
+ else
60
+ r[0]['errorMessage'].blank?
61
+ end
43
62
  end
44
63
 
45
64
  # allow to access custom fields on new record
@@ -1,5 +1,5 @@
1
1
  class Unresponsys
2
- class Table
2
+ class SupplementalTable
3
3
  extend Forwardable
4
4
  delegate [:client] => :folder
5
5
  attr_reader :folder, :name
@@ -1,3 +1,3 @@
1
1
  class Unresponsys
2
- VERSION = '0.1.5'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/unresponsys.rb CHANGED
@@ -2,11 +2,12 @@ require 'active_support'
2
2
  require 'active_support/all'
3
3
  require 'unresponsys/client'
4
4
  require 'unresponsys/event'
5
+ require 'unresponsys/extension_table'
5
6
  require 'unresponsys/errors'
6
7
  require 'unresponsys/folder'
7
8
  require 'unresponsys/helpers'
8
9
  require 'unresponsys/list'
9
10
  require 'unresponsys/member'
10
11
  require 'unresponsys/row'
11
- require 'unresponsys/table'
12
+ require 'unresponsys/supplemental_table'
12
13
  require 'unresponsys/version'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unresponsys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Kimball
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-08 00:00:00.000000000 Z
11
+ date: 2016-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -119,12 +119,13 @@ files:
119
119
  - lib/unresponsys/client.rb
120
120
  - lib/unresponsys/errors.rb
121
121
  - lib/unresponsys/event.rb
122
+ - lib/unresponsys/extension_table.rb
122
123
  - lib/unresponsys/folder.rb
123
124
  - lib/unresponsys/helpers.rb
124
125
  - lib/unresponsys/list.rb
125
126
  - lib/unresponsys/member.rb
126
127
  - lib/unresponsys/row.rb
127
- - lib/unresponsys/table.rb
128
+ - lib/unresponsys/supplemental_table.rb
128
129
  - lib/unresponsys/version.rb
129
130
  homepage:
130
131
  licenses: []