rav-meser-api 1.0.10 → 1.0.11
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 +4 -4
- data/lib/rav-meser-api.rb +22 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5af78dca1569cd1371bd4c865e0d6e008dbeb83
|
4
|
+
data.tar.gz: e1eab72927bd85dd10a0ab5d707a50f2cc1b2e1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8066c1b337a3bae6da3baef2229ba92e1df9aa00039902db86047908d3bc833544772a234b9b1de1fea85e0ce3e497dafd7401ad63545250ac434daf24bdc386
|
7
|
+
data.tar.gz: 5142d7e8a5dc350110f5bf8a956eb7c32861c3d7e4300ea431f60576b994945907d7af958aea3da54341052fc583ada78208fb0f723b5855364f9ca235076214
|
data/lib/rav-meser-api.rb
CHANGED
@@ -2,8 +2,8 @@ require 'rubygems'
|
|
2
2
|
require 'oauth'
|
3
3
|
require 'json'
|
4
4
|
require 'optparse'
|
5
|
-
require 'pp'
|
6
5
|
require 'uri'
|
6
|
+
# require 'pp'
|
7
7
|
# require 'pry'
|
8
8
|
|
9
9
|
# gem class name RavMeser
|
@@ -148,13 +148,19 @@ class RavMeser
|
|
148
148
|
# id: (int)
|
149
149
|
# args: (Hash)
|
150
150
|
def upsert_subscribers(id, args = {})
|
151
|
+
raise 'Too few subscribers' if args.length.zero?
|
152
|
+
|
151
153
|
create_response = send_request(:post, 'subscribers', '/' + id.to_s + '/subscribers', [], args)
|
154
|
+
raise "ERRORS: #{create_response['ERRORS']}" unless create_response['ERRORS'].empty?
|
152
155
|
|
153
|
-
|
154
|
-
create_response['EMAILS_EXISTING'].
|
155
|
-
update_args
|
156
|
+
edit_response = {}
|
157
|
+
unless create_response['EMAILS_EXISTING'].empty?
|
158
|
+
update_args = {}
|
159
|
+
create_response['EMAILS_EXISTING'].each_with_index do |email, index|
|
160
|
+
update_args[index] = get_subscriber_args_and_set_identifier(args, email)
|
161
|
+
end
|
162
|
+
edit_response = send_request(:put, 'subscribers', '/' + id.to_s + '/subscribers', [], update_args)
|
156
163
|
end
|
157
|
-
edit_response = send_request(:put, 'subscribers', '/' + id.to_s + '/subscribers', [], update_args)
|
158
164
|
|
159
165
|
[create_response, edit_response]
|
160
166
|
end
|
@@ -170,18 +176,20 @@ class RavMeser
|
|
170
176
|
# id: (int)
|
171
177
|
# args: (Hash)
|
172
178
|
def upsert_subscriber(id, args = {})
|
173
|
-
|
179
|
+
raise 'Too many subscribers' unless args.length == 1
|
174
180
|
|
181
|
+
edit_response = {}
|
175
182
|
create_response = send_request(:post, 'subscribers', '/' + id.to_s + '/subscribers', [], args)
|
183
|
+
raise "ERRORS: #{create_response['ERRORS']}" unless create_response['ERRORS'].empty?
|
184
|
+
|
176
185
|
if create_response['EMAILS_EXISTING'].length == 1
|
177
186
|
args[0][:IDENTIFIER] = args[0].delete(:EMAIL)
|
178
187
|
edit_response = send_request(:put, 'subscribers', '/' + id.to_s + '/subscribers', [], args)
|
179
188
|
end
|
180
189
|
|
181
|
-
[create_response, edit_response
|
190
|
+
[create_response, edit_response]
|
182
191
|
end
|
183
192
|
|
184
|
-
|
185
193
|
# <!----------- PERSONAL FIELDS -----------!>
|
186
194
|
|
187
195
|
# get personal fields from specific list
|
@@ -299,7 +307,12 @@ class RavMeser
|
|
299
307
|
query = [query]
|
300
308
|
path_request = query.empty? ? path : path + URI.encode_www_form(query)
|
301
309
|
response = @access_token.request(type, path_request, json_obj)
|
302
|
-
|
310
|
+
|
311
|
+
begin
|
312
|
+
response = JSON.parse(response.body)
|
313
|
+
rescue StandardError => e
|
314
|
+
raise "RavMeser API return invalid response.\n#{e}"
|
315
|
+
end
|
303
316
|
response
|
304
317
|
end
|
305
318
|
|