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