unresponsys 0.1.5 → 0.2.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
  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: []