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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rav-meser-api.rb +22 -9
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e0f636412d9ed71a57d55b4ae742cea7573c724b
4
- data.tar.gz: edc1bc29eb40961ae5645384d9296d41dedc45a0
3
+ metadata.gz: b5af78dca1569cd1371bd4c865e0d6e008dbeb83
4
+ data.tar.gz: e1eab72927bd85dd10a0ab5d707a50f2cc1b2e1c
5
5
  SHA512:
6
- metadata.gz: 4eb0fac7401857a4a098809c5fa65e525a159e199fc6f5968663f5753bda1f4523ae01d3637f18d266bbb61a03d883f5f836e284f076f956cc94ef5b19fdd6e6
7
- data.tar.gz: 6c5b4fec06e98487021242d5cf3502db6106982659ace432256cf43f7b6f41d0bf4a0c1b331abf4be81a799956ecc07c25fa64e271e76e87ac529d6d96d90f68
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
- update_args = {}
154
- create_response['EMAILS_EXISTING'].each_with_index do |email, index|
155
- update_args[index] = get_subscriber_args_and_set_identifier(args, email)
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
- return { error: 'Too many subscribers' } unless args.length == 1
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
- response = JSON.parse(response.body) unless response.class == String
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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rav-meser-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Itamar Davidyan