MailchimpMarketing 3.0.5 → 3.0.10

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/MailchimpMarketing.gemspec +2 -2
  4. data/README.md +22 -26
  5. data/lib/MailchimpMarketing.rb +1 -1
  6. data/lib/MailchimpMarketing/api/activity_feed_api.rb +10 -71
  7. data/lib/MailchimpMarketing/api/authorized_apps_api.rb +16 -116
  8. data/lib/MailchimpMarketing/api/automations_api.rb +110 -704
  9. data/lib/MailchimpMarketing/api/batch_webhooks_api.rb +27 -187
  10. data/lib/MailchimpMarketing/api/batches_api.rb +21 -150
  11. data/lib/MailchimpMarketing/api/campaign_folders_api.rb +27 -187
  12. data/lib/MailchimpMarketing/api/campaigns_api.rb +124 -828
  13. data/lib/MailchimpMarketing/api/connected_sites_api.rb +26 -184
  14. data/lib/MailchimpMarketing/api/conversations_api.rb +30 -210
  15. data/lib/MailchimpMarketing/api/dashboard_api.rb +25 -227
  16. data/lib/MailchimpMarketing/api/ecommerce_api.rb +387 -2371
  17. data/lib/MailchimpMarketing/api/external_auths_api.rb +16 -116
  18. data/lib/MailchimpMarketing/api/facebook_ads_api.rb +13 -85
  19. data/lib/MailchimpMarketing/api/file_manager_api.rb +59 -424
  20. data/lib/MailchimpMarketing/api/landing_pages_api.rb +44 -296
  21. data/lib/MailchimpMarketing/api/lists_api.rb +420 -2707
  22. data/lib/MailchimpMarketing/api/ping_api.rb +5 -34
  23. data/lib/MailchimpMarketing/api/postcards_api.rb +7 -42
  24. data/lib/MailchimpMarketing/api/reporting_api.rb +34 -243
  25. data/lib/MailchimpMarketing/api/reports_api.rb +130 -925
  26. data/lib/MailchimpMarketing/api/root_api.rb +5 -38
  27. data/lib/MailchimpMarketing/api/search_campaigns_api.rb +6 -40
  28. data/lib/MailchimpMarketing/api/search_members_api.rb +6 -42
  29. data/lib/MailchimpMarketing/api/template_folders_api.rb +27 -187
  30. data/lib/MailchimpMarketing/api/templates_api.rb +33 -240
  31. data/lib/MailchimpMarketing/api/verified_domains_api.rb +26 -175
  32. data/lib/MailchimpMarketing/api_client.rb +15 -161
  33. data/lib/MailchimpMarketing/api_error.rb +1 -1
  34. data/lib/MailchimpMarketing/configuration.rb +1 -1
  35. data/lib/MailchimpMarketing/version.rb +2 -2
  36. metadata +5 -11
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
5
 
6
- OpenAPI spec version: 3.0.5
6
+ OpenAPI spec version: 3.0.10
7
7
  Contact: apihelp@mailchimp.com
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
  Swagger Codegen version: 2.4.12
@@ -11,24 +11,13 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  require 'json'
14
- require 'faraday'
14
+ require 'excon'
15
15
 
16
16
  module MailchimpMarketing
17
17
  class ApiClient
18
- # Defines the headers to be used in HTTP requests of all API calls by default.
19
- #
20
- # @return [Hash]
21
- attr_accessor :default_headers
22
-
23
- # Initializes the ApiClient
24
18
  def initialize(config = {})
25
19
  @host = "https://server.api.mailchimp.com/3.0"
26
20
  @user_agent = "Swagger-Codegen/#{VERSION}/ruby"
27
- @default_headers = {
28
- 'Content-Type' => 'application/json',
29
- 'User-Agent' => @user_agent
30
- }
31
-
32
21
  set_config(config)
33
22
  end
34
23
 
@@ -40,11 +29,9 @@ module MailchimpMarketing
40
29
  begin
41
30
  split = api_key.split('-')
42
31
  server = 'invalid-server'
43
-
44
32
  if split.length == 2
45
33
  server = split[1]
46
34
  end
47
-
48
35
  server
49
36
  rescue
50
37
  ""
@@ -52,11 +39,9 @@ module MailchimpMarketing
52
39
  end
53
40
 
54
41
  def set_config(config = {})
55
- # Basic Auth
56
42
  @api_key = config[:api_key] || ''
57
43
  @is_basic_auth = @api_key.to_s.strip.empty? == false
58
44
 
59
- # OAuth
60
45
  @access_token = config[:access_token] || ''
61
46
  @is_oauth = @access_token.to_s.strip.empty? == false
62
47
 
@@ -69,146 +54,31 @@ module MailchimpMarketing
69
54
  end
70
55
 
71
56
  def call_api(http_method, path, opts = {})
72
- header_params = @default_headers.merge(opts[:header_params] || {})
73
- query_params = opts[:query_params] || {}
74
- form_params = opts[:form_params] || {}
75
-
76
- body = {}
77
- if [:post, :patch, :put, :delete].include?(http_method.to_sym.downcase)
78
- body = build_request_body(header_params, form_params, opts[:body])
79
- end
80
-
81
- res = request(http_method, path, query_params, header_params, body)
82
-
83
- data = nil
84
- if res.headers['content-type'] && res.headers['content-type'].include?('application/json')
85
- data = JSON.parse(res.body)
86
- else
87
- data = res.body
88
- end
57
+ headers = {'Content-Type' => "application/json"}
58
+ headers[:Authorization] = "Basic #{@api_key}" if @is_basic_auth
59
+ headers[:Authorization] = "Bearer #@access_token" if @is_oauth
89
60
 
90
- if data
91
- if res.status <= 200
92
- data
93
- else
94
- fail ApiError.new(res.body)
95
- end
96
- end
97
- end
98
-
99
- def request(http_method, path, query_params = nil, header_params = nil, body = nil)
100
61
  host = @server.length > 0 ? @host.sub('server', @server) : @host
101
- url = host + path
102
-
103
- # Basic Authentication
104
- conn = Faraday.new(url) do |conn|
105
- conn.params = query_params
106
-
107
- if @is_basic_auth
108
- conn.headers = header_params
109
- conn.basic_auth('user', @api_key)
110
- end
111
-
112
- if @is_oauth
113
- conn.headers["Authorization"] = "Bearer #{@access_token}"
114
- end
115
- end
62
+ conn = Excon.new(host + path, :headers => headers)
116
63
 
64
+ res = nil
117
65
  case http_method.to_sym.downcase
118
- when :delete
119
- conn.delete do |req|
120
- req.body = body.to_json
121
- end
66
+ when :post, :put, :delete
67
+ res = conn.request(:method => http_method, :body => opts[:body])
122
68
  when :get
123
- conn.get
124
- when :head
125
- conn.head
126
- when :options
127
- conn.options
128
- when :post
129
- conn.post do |req|
130
- req.body = body.to_json
131
- end
132
- when :put
133
- conn.put do |req|
134
- req.body = body.to_json
135
- end
136
- when :patch
137
- conn.patch do |req|
138
- req.body = body.to_json
139
- end
140
- else
141
- fail ApiError.new('Invalid http_method')
69
+ res = conn.get(:query => opts[:query_params])
142
70
  end
143
- end
144
-
145
- # Sanitize filename by removing path.
146
- # e.g. ../../sun.gif becomes sun.gif
147
- #
148
- # @param [String] filename the filename to be sanitized
149
- # @return [String] the sanitized filename
150
- def sanitize_filename(filename)
151
- filename.gsub(/.*[\/\\]/, '')
152
- end
153
71
 
154
- def build_request_url(path)
155
- # Add leading and trailing slashes to path
156
- path = "/#{path}".gsub(/\/+/, '/')
157
- URI.encode(@config.base_url + path)
158
- end
159
-
160
- # Builds the HTTP request body
161
- #
162
- # @param [Hash] header_params Header parameters
163
- # @param [Hash] form_params Query parameters
164
- # @param [Object] body HTTP body (JSON/XML)
165
- # @return [String] HTTP body data in the form of string
166
- def build_request_body(header_params, form_params, body)
167
- # http form
168
- if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
169
- header_params['Content-Type'] == 'multipart/form-data'
170
- data = {}
171
- form_params.each do |key, value|
172
- case value
173
- when ::File, ::Array, nil
174
- # let typhoeus handle File, Array and nil parameters
175
- data[key] = value
176
- else
177
- data[key] = value.to_s
178
- end
179
- end
180
- elsif body
181
- data = body.is_a?(String) ? body : body.to_json
72
+ if res.status == 204
73
+ return "success"
74
+ elsif res.status == 200
75
+ return JSON.parse(res.body)
182
76
  else
183
- data = nil
77
+ return res.body
184
78
  end
185
- data
186
- end
187
-
188
- # Return Accept header based on an array of accepts provided.
189
- # @param [Array] accepts array for Accept
190
- # @return [String] the Accept header (e.g. application/json)
191
- def select_header_accept(accepts)
192
- return nil if accepts.nil? || accepts.empty?
193
- # use JSON when present, otherwise use all of the provided
194
- json_accept = accepts.find { |s| json_mime?(s) }
195
- json_accept || accepts.join(',')
196
- end
197
-
198
- # Return Content-Type header based on an array of content types provided.
199
- # @param [Array] content_types array for Content-Type
200
- # @return [String] the Content-Type header (e.g. application/json)
201
- def select_header_content_type(content_types)
202
- # use application/json by default
203
- return 'application/json' if content_types.nil? || content_types.empty?
204
- # use JSON when present, otherwise use the first one
205
- json_content_type = content_types.find { |s| json_mime?(s) }
206
- json_content_type || content_types.first
207
79
  end
208
80
 
209
81
  # Convert object (array, hash, object, etc) to JSON string.
210
- # @param [Object] model object to be converted into JSON string
211
- # @return [String] JSON string representation of the object
212
82
  def object_to_http_body(model)
213
83
  return model if model.nil? || model.is_a?(String)
214
84
  local_body = nil
@@ -221,8 +91,6 @@ module MailchimpMarketing
221
91
  end
222
92
 
223
93
  # Convert object(non-array) to hash.
224
- # @param [Object] obj object to be converted into JSON string
225
- # @return [String] JSON string representation of the object
226
94
  def object_to_hash(obj)
227
95
  if obj.respond_to?(:to_hash)
228
96
  obj.to_hash
@@ -232,7 +100,6 @@ module MailchimpMarketing
232
100
  end
233
101
 
234
102
  # Build parameter value according to the given collection format.
235
- # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
236
103
  def build_collection_param(param, collection_format)
237
104
  case collection_format
238
105
  when :csv
@@ -244,23 +111,10 @@ module MailchimpMarketing
244
111
  when :pipes
245
112
  param.join('|')
246
113
  when :multi
247
- # return the array directly as typhoeus will handle it as expected
248
114
  param
249
115
  else
250
116
  fail "unknown collection format: #{collection_format.inspect}"
251
117
  end
252
118
  end
253
-
254
- # Check if the given MIME is a JSON MIME.
255
- # JSON MIME examples:
256
- # application/json
257
- # application/json; charset=UTF8
258
- # APPLICATION/JSON
259
- # */*
260
- # @param [String] mime MIME
261
- # @return [Boolean] True if the MIME is application/json
262
- def json_mime?(mime)
263
- (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
264
- end
265
119
  end
266
120
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
5
 
6
- OpenAPI spec version: 3.0.5
6
+ OpenAPI spec version: 3.0.10
7
7
  Contact: apihelp@mailchimp.com
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
  Swagger Codegen version: 2.4.12
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
5
 
6
- OpenAPI spec version: 3.0.5
6
+ OpenAPI spec version: 3.0.10
7
7
  Contact: apihelp@mailchimp.com
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
  Swagger Codegen version: 2.4.12
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
5
 
6
- OpenAPI spec version: 3.0.5
6
+ OpenAPI spec version: 3.0.10
7
7
  Contact: apihelp@mailchimp.com
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
  Swagger Codegen version: 2.4.12
@@ -11,5 +11,5 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  module MailchimpMarketing
14
- VERSION = '3.0.5'
14
+ VERSION = '3.0.10'
15
15
  end
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: MailchimpMarketing
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.5
4
+ version: 3.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swagger-Codegen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-03 00:00:00.000000000 Z
11
+ date: 2020-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: faraday
14
+ name: excon
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.0.1
19
+ version: 0.76.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '1.0'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 1.0.1
26
+ version: 0.76.0
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: json
35
29
  requirement: !ruby/object:Gem::Requirement