mailjet 1.5.1 → 1.5.2

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: 0caf5b8f84f19dcfddd140a77d3912e0e6ee1672
4
- data.tar.gz: a5cd66471eb7a399882b33ac4fd347c2f16698a6
3
+ metadata.gz: 2e5aca2e6992e3629225e95b54f92c345b9a425a
4
+ data.tar.gz: eb1f16741cb17b0a1db5303e29fd57fc853c44ae
5
5
  SHA512:
6
- metadata.gz: 38c9e20e47f52baf3746f61e898c579692801d05a13c1dc69c8991bae21573c6f2a4c07da87eb580bec8beab52eb044cda671e108b605fcbc7aae130f4215309
7
- data.tar.gz: 2d96779dee5a705fd311fa3a9502f9fa1c502b67348d0fd85c45211c45553d9cb81a04d30ab8f297248cdff78a74f64ab6cf135f7d85ab119fa1ebb6f7269dde
6
+ metadata.gz: 48c6bd96487aa123c5a201157e4d1d199325ebe582c54423bad89b0ad58c5c9d1f3f5d692ff94257ecd6745625ab1939dfb908cf81f55258a6081125a9d0747b
7
+ data.tar.gz: 54836996f885ea2286b23ff127d09913722fac7819764436e9f757cbd93bd8d4f0374fd207615438ef417acc1199d575896c8b91688198057abad0c81d43bf30
@@ -6,7 +6,7 @@ require 'json'
6
6
  module Mailjet
7
7
  class Connection
8
8
 
9
- attr_accessor :adapter, :public_operations, :read_only
9
+ attr_accessor :adapter, :public_operations, :read_only, :perform_api_call
10
10
  alias :read_only? :read_only
11
11
 
12
12
  delegate :options, :concat_urls, :url, to: :adapter
@@ -37,36 +37,39 @@ module Mailjet
37
37
  self.read_only = options[:read_only]
38
38
  # self.adapter = adapter_class.new(end_point, options.merge(user: api_key, password: secret_key, :verify_ssl => false, content_type: 'application/json'))
39
39
  self.adapter = adapter_class.new(end_point, options.merge(user: api_key, password: secret_key, content_type: 'application/json'))
40
+ self.perform_api_call = options.key?(:perform_api_call) ? options[:perform_api_call] : true
40
41
  end
41
42
 
42
- def get(additional_headers = {}, perform_api_call, &block)
43
- handle_api_call(:get, additional_headers, perform_api_call, &block)
43
+ def get(additional_headers = {}, &block)
44
+ handle_api_call(:get, additional_headers, &block)
44
45
  end
45
46
 
46
- def post(payload, additional_headers = {}, perform_api_call, &block)
47
- handle_api_call(:post, additional_headers, payload, perform_api_call, &block)
47
+ def post(payload, additional_headers = {}, &block)
48
+ handle_api_call(:post, additional_headers, payload, &block)
48
49
  end
49
50
 
50
- def put(payload, additional_headers = {}, perform_api_call, &block)
51
- handle_api_call(:put, additional_headers, payload, perform_api_call, &block)
51
+ def put(payload, additional_headers = {}, &block)
52
+ handle_api_call(:put, additional_headers, payload, &block)
52
53
  end
53
54
 
54
- def delete(additional_headers = {}, perform_api_call, &block)
55
- handle_api_call(:delete, additional_headers, perform_api_call, &block)
55
+ def delete(additional_headers = {}, &block)
56
+ handle_api_call(:delete, additional_headers, &block)
56
57
  end
57
58
 
58
59
  private
59
60
 
60
- def handle_api_call(method, additional_headers = {}, payload = {}, perform_api_call, &block)
61
+ def handle_api_call(method, additional_headers = {}, payload = {}, &block)
61
62
  formatted_payload = (additional_headers[:content_type] == :json) ? payload.to_json : payload
62
63
  raise Mailjet::MethodNotAllowed unless method_allowed(method)
63
64
 
64
- if perform_api_call
65
+ if self.perform_api_call
65
66
  if [:get, :delete].include?(method)
66
67
  @adapter.send(method, additional_headers, &block)
67
68
  else
68
69
  @adapter.send(method, formatted_payload, additional_headers, &block)
69
70
  end
71
+ else
72
+ return {'Count': 0, 'Data': [mock_api_call: true], 'Total': 0}.to_json
70
73
  end
71
74
  rescue RestClient::Exception => e
72
75
  handle_exception(e, additional_headers, formatted_payload)
@@ -36,7 +36,8 @@ module Mailjet
36
36
  options[:api_key] || Mailjet.config.api_key,
37
37
  options[:secret_key] || Mailjet.config.secret_key,
38
38
  public_operations: public_operations,
39
- read_only: read_only)
39
+ read_only: read_only,
40
+ perform_api_call: options[:perform_api_call])
40
41
  end
41
42
 
42
43
  def self.default_headers
@@ -57,14 +58,14 @@ module Mailjet
57
58
  def all(params = {}, options = {})
58
59
  opts = change_resource_path(options)
59
60
  params = format_params(params)
60
- response = connection(opts).get(default_headers.merge(params: params), opts[:perform_api_call])
61
+ response = connection(opts).get(default_headers.merge(params: params))
61
62
  attribute_array = parse_api_json(response)
62
63
  attribute_array.map{ |attributes| instanciate_from_api(attributes) }
63
64
  end
64
65
 
65
66
  def count(options = {})
66
67
  opts = change_resource_path(options)
67
- response_json = connection(opts).get(default_headers.merge(params: {limit: 1, countrecords: 1}), opts[:perform_api_call])
68
+ response_json = connection(opts).get(default_headers.merge(params: {limit: 1, countrecords: 1}))
68
69
  response_hash = ActiveSupport::JSON.decode(response_json)
69
70
  response_hash['Total']
70
71
  end
@@ -74,7 +75,7 @@ module Mailjet
74
75
  opts = change_resource_path(options)
75
76
  self.resource_path = create_action_resource_path(id, job_id) if self.action
76
77
  #
77
- attributes = parse_api_json(connection(opts)[id].get(default_headers, opts[:perform_api_call])).first
78
+ attributes = parse_api_json(connection(opts)[id].get(default_headers)).first
78
79
  instanciate_from_api(attributes)
79
80
 
80
81
  rescue Mailjet::ApiError => e
@@ -111,7 +112,7 @@ module Mailjet
111
112
  # if action method, ammend url to appropriate id
112
113
  opts = change_resource_path(options)
113
114
  self.resource_path = create_action_resource_path(id) if self.action
114
- connection(options)[id].delete(default_headers)
115
+ connection(opts)[id].delete(default_headers)
115
116
  end
116
117
 
117
118
  def instanciate_from_api(attributes = {})
@@ -120,6 +121,7 @@ module Mailjet
120
121
 
121
122
  def parse_api_json(response_json)
122
123
  response_hash = ActiveSupport::JSON.decode(response_json)
124
+
123
125
  #Take the response from the API and put it through a method -- taken from the ActiveSupport library -- which converts
124
126
  #the date-time from "2014-05-19T15:31:09Z" to "Mon, 19 May 2014 15:31:09 +0000" format.
125
127
  response_hash = convert_dates_from(response_hash)
@@ -218,7 +220,7 @@ module Mailjet
218
220
  perform_api_call = options[:perform_api_call]
219
221
  end
220
222
  if options.key?(:url)
221
- url = options['url']
223
+ url = options[:url]
222
224
  end
223
225
  end
224
226
  ret = {version: ver, url: url, perform_api_call: perform_api_call}
@@ -243,16 +245,18 @@ module Mailjet
243
245
  attributes[:persisted]
244
246
  end
245
247
 
246
- def save(options)
248
+ def save(options = {})
249
+ opts = self.class.change_resource_path(options)
250
+
247
251
  if persisted?
248
252
  # case where the entity is updated
249
- response = connection(options)[attributes[:id]].put(formatted_payload, default_headers, options[:perform_api_call])
253
+ response = connection(opts)[attributes[:id]].put(formatted_payload, default_headers)
250
254
  else
251
255
  # case where the entity is created
252
- response = connection(options).post(formatted_payload, default_headers, options[:perform_api_call])
256
+ response = connection(opts).post(formatted_payload, default_headers)
253
257
  end
254
258
 
255
- if options[:perform_api_call] && !persisted?
259
+ if opts[:perform_api_call] && !persisted?
256
260
  # get attributes only for entity creation
257
261
  self.attributes = if self.resource_path == 'send'
258
262
  ActiveSupport::JSON.decode(response)
@@ -271,7 +275,7 @@ module Mailjet
271
275
  end
272
276
  end
273
277
 
274
- def save!(options)
278
+ def save!(options = {})
275
279
  save(options) || raise(StandardError.new("Resource not persisted"))
276
280
  end
277
281
 
@@ -1,3 +1,3 @@
1
1
  module Mailjet
2
- VERSION = "1.5.1"
2
+ VERSION = "1.5.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailjet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Nappy
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-05-26 00:00:00.000000000 Z
14
+ date: 2017-06-05 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport