rav-meser-api 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
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