MailchimpMarketing 3.0.7 → 3.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +53 -0
  3. data/MailchimpMarketing.gemspec +2 -2
  4. data/README.md +2 -2
  5. data/lib/MailchimpMarketing.rb +1 -1
  6. data/lib/MailchimpMarketing/api/activity_feed_api.rb +5 -10
  7. data/lib/MailchimpMarketing/api/authorized_apps_api.rb +7 -14
  8. data/lib/MailchimpMarketing/api/automations_api.rb +39 -78
  9. data/lib/MailchimpMarketing/api/batch_webhooks_api.rb +11 -22
  10. data/lib/MailchimpMarketing/api/batches_api.rb +9 -18
  11. data/lib/MailchimpMarketing/api/campaign_folders_api.rb +11 -22
  12. data/lib/MailchimpMarketing/api/campaigns_api.rb +45 -90
  13. data/lib/MailchimpMarketing/api/connected_sites_api.rb +11 -22
  14. data/lib/MailchimpMarketing/api/conversations_api.rb +11 -22
  15. data/lib/MailchimpMarketing/api/dashboard_api.rb +13 -26
  16. data/lib/MailchimpMarketing/api/ecommerce_api.rb +119 -238
  17. data/lib/MailchimpMarketing/api/external_auths_api.rb +7 -14
  18. data/lib/MailchimpMarketing/api/facebook_ads_api.rb +5 -10
  19. data/lib/MailchimpMarketing/api/file_manager_api.rb +23 -46
  20. data/lib/MailchimpMarketing/api/landing_pages_api.rb +17 -34
  21. data/lib/MailchimpMarketing/api/lists_api.rb +136 -268
  22. data/lib/MailchimpMarketing/api/ping_api.rb +3 -6
  23. data/lib/MailchimpMarketing/api/postcards_api.rb +3 -6
  24. data/lib/MailchimpMarketing/api/reporting_api.rb +13 -26
  25. data/lib/MailchimpMarketing/api/reports_api.rb +45 -90
  26. data/lib/MailchimpMarketing/api/root_api.rb +3 -6
  27. data/lib/MailchimpMarketing/api/search_campaigns_api.rb +3 -6
  28. data/lib/MailchimpMarketing/api/search_members_api.rb +3 -6
  29. data/lib/MailchimpMarketing/api/template_folders_api.rb +11 -22
  30. data/lib/MailchimpMarketing/api/templates_api.rb +13 -26
  31. data/lib/MailchimpMarketing/api/verified_domains_api.rb +11 -22
  32. data/lib/MailchimpMarketing/api_client.rb +17 -109
  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 -10
@@ -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.7
6
+ OpenAPI spec version: 3.0.12
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,7 +11,6 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  require 'uri'
14
- require 'json'
15
14
 
16
15
  module MailchimpMarketing
17
16
  class RootApi
@@ -27,15 +26,13 @@ module MailchimpMarketing
27
26
  query_params = {}
28
27
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
29
28
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
30
- form_params = {}
31
29
  post_body = nil
32
30
 
33
31
  local_var_path = '/'
34
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
32
+ data = @api_client.call_api(:GET, local_var_path,
35
33
  :query_params => query_params,
36
- :form_params => form_params,
37
34
  :body => post_body)
38
- return data, status_code, headers
35
+ return data
39
36
  end
40
37
  end
41
38
  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.7
6
+ OpenAPI spec version: 3.0.12
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,7 +11,6 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  require 'uri'
14
- require 'json'
15
14
 
16
15
  module MailchimpMarketing
17
16
  class SearchCampaignsApi
@@ -29,15 +28,13 @@ module MailchimpMarketing
29
28
  query_params[:'query'] = query
30
29
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
31
30
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
32
- form_params = {}
33
31
  post_body = nil
34
32
 
35
33
  local_var_path = '/search-campaigns'
36
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
34
+ data = @api_client.call_api(:GET, local_var_path,
37
35
  :query_params => query_params,
38
- :form_params => form_params,
39
36
  :body => post_body)
40
- return data, status_code, headers
37
+ return data
41
38
  end
42
39
  end
43
40
  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.7
6
+ OpenAPI spec version: 3.0.12
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,7 +11,6 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  require 'uri'
14
- require 'json'
15
14
 
16
15
  module MailchimpMarketing
17
16
  class SearchMembersApi
@@ -30,15 +29,13 @@ module MailchimpMarketing
30
29
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
31
30
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
32
31
  query_params[:'list_id'] = opts[:'list_id'] if !opts[:'list_id'].nil?
33
- form_params = {}
34
32
  post_body = nil
35
33
 
36
34
  local_var_path = '/search-members'
37
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
35
+ data = @api_client.call_api(:GET, local_var_path,
38
36
  :query_params => query_params,
39
- :form_params => form_params,
40
37
  :body => post_body)
41
- return data, status_code, headers
38
+ return data
42
39
  end
43
40
  end
44
41
  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.7
6
+ OpenAPI spec version: 3.0.12
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,7 +11,6 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  require 'uri'
14
- require 'json'
15
14
 
16
15
  module MailchimpMarketing
17
16
  class TemplateFoldersApi
@@ -26,15 +25,13 @@ module MailchimpMarketing
26
25
  fail ArgumentError, "Missing required param: 'folder_id'" if folder_id.nil?
27
26
 
28
27
  query_params = {}
29
- form_params = {}
30
28
  post_body = nil
31
29
 
32
30
  local_var_path = '/template-folders/{folder_id}'.sub('{' + 'folder_id' + '}', folder_id.to_s)
33
- data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
31
+ data = @api_client.call_api(:DELETE, local_var_path,
34
32
  :query_params => query_params,
35
- :form_params => form_params,
36
33
  :body => post_body)
37
- return data, status_code, headers
34
+ return data
38
35
  end
39
36
 
40
37
  # List template folders
@@ -46,15 +43,13 @@ module MailchimpMarketing
46
43
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
47
44
  query_params[:'count'] = opts[:'count'] if !opts[:'count'].nil?
48
45
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
49
- form_params = {}
50
46
  post_body = nil
51
47
 
52
48
  local_var_path = '/template-folders'
53
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
49
+ data = @api_client.call_api(:GET, local_var_path,
54
50
  :query_params => query_params,
55
- :form_params => form_params,
56
51
  :body => post_body)
57
- return data, status_code, headers
52
+ return data
58
53
  end
59
54
 
60
55
  # Get template folder
@@ -64,15 +59,13 @@ module MailchimpMarketing
64
59
  query_params = {}
65
60
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
66
61
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
67
- form_params = {}
68
62
  post_body = nil
69
63
 
70
64
  local_var_path = '/template-folders/{folder_id}'.sub('{' + 'folder_id' + '}', folder_id.to_s)
71
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
65
+ data = @api_client.call_api(:GET, local_var_path,
72
66
  :query_params => query_params,
73
- :form_params => form_params,
74
67
  :body => post_body)
75
- return data, status_code, headers
68
+ return data
76
69
  end
77
70
 
78
71
  # Update template folder
@@ -81,15 +74,13 @@ module MailchimpMarketing
81
74
  fail ArgumentError, "Missing required param: 'body'" if body.nil?
82
75
 
83
76
  query_params = {}
84
- form_params = {}
85
77
  post_body = @api_client.object_to_http_body(body)
86
78
 
87
79
  local_var_path = '/template-folders/{folder_id}'.sub('{' + 'folder_id' + '}', folder_id.to_s)
88
- data, status_code, headers = @api_client.call_api(:PATCH, local_var_path,
80
+ data = @api_client.call_api(:PATCH, local_var_path,
89
81
  :query_params => query_params,
90
- :form_params => form_params,
91
82
  :body => post_body)
92
- return data, status_code, headers
83
+ return data
93
84
  end
94
85
 
95
86
  # Add template folder
@@ -97,15 +88,13 @@ module MailchimpMarketing
97
88
  fail ArgumentError, "Missing required param: 'body'" if body.nil?
98
89
 
99
90
  query_params = {}
100
- form_params = {}
101
91
  post_body = @api_client.object_to_http_body(body)
102
92
 
103
93
  local_var_path = '/template-folders'
104
- data, status_code, headers = @api_client.call_api(:POST, local_var_path,
94
+ data = @api_client.call_api(:POST, local_var_path,
105
95
  :query_params => query_params,
106
- :form_params => form_params,
107
96
  :body => post_body)
108
- return data, status_code, headers
97
+ return data
109
98
  end
110
99
  end
111
100
  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.7
6
+ OpenAPI spec version: 3.0.12
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,7 +11,6 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  require 'uri'
14
- require 'json'
15
14
 
16
15
  module MailchimpMarketing
17
16
  class TemplatesApi
@@ -26,15 +25,13 @@ module MailchimpMarketing
26
25
  fail ArgumentError, "Missing required param: 'template_id'" if template_id.nil?
27
26
 
28
27
  query_params = {}
29
- form_params = {}
30
28
  post_body = nil
31
29
 
32
30
  local_var_path = '/templates/{template_id}'.sub('{' + 'template_id' + '}', template_id.to_s)
33
- data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
31
+ data = @api_client.call_api(:DELETE, local_var_path,
34
32
  :query_params => query_params,
35
- :form_params => form_params,
36
33
  :body => post_body)
37
- return data, status_code, headers
34
+ return data
38
35
  end
39
36
 
40
37
  # List templates
@@ -54,15 +51,13 @@ module MailchimpMarketing
54
51
  query_params[:'category'] = opts[:'category'] if !opts[:'category'].nil?
55
52
  query_params[:'folder_id'] = opts[:'folder_id'] if !opts[:'folder_id'].nil?
56
53
  query_params[:'sort_field'] = opts[:'sort_field'] if !opts[:'sort_field'].nil?
57
- form_params = {}
58
54
  post_body = nil
59
55
 
60
56
  local_var_path = '/templates'
61
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
57
+ data = @api_client.call_api(:GET, local_var_path,
62
58
  :query_params => query_params,
63
- :form_params => form_params,
64
59
  :body => post_body)
65
- return data, status_code, headers
60
+ return data
66
61
  end
67
62
 
68
63
  # Get template info
@@ -72,15 +67,13 @@ module MailchimpMarketing
72
67
  query_params = {}
73
68
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
74
69
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
75
- form_params = {}
76
70
  post_body = nil
77
71
 
78
72
  local_var_path = '/templates/{template_id}'.sub('{' + 'template_id' + '}', template_id.to_s)
79
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
73
+ data = @api_client.call_api(:GET, local_var_path,
80
74
  :query_params => query_params,
81
- :form_params => form_params,
82
75
  :body => post_body)
83
- return data, status_code, headers
76
+ return data
84
77
  end
85
78
 
86
79
  # View default content
@@ -90,15 +83,13 @@ module MailchimpMarketing
90
83
  query_params = {}
91
84
  query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :csv) if !opts[:'fields'].nil?
92
85
  query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :csv) if !opts[:'exclude_fields'].nil?
93
- form_params = {}
94
86
  post_body = nil
95
87
 
96
88
  local_var_path = '/templates/{template_id}/default-content'.sub('{' + 'template_id' + '}', template_id.to_s)
97
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
89
+ data = @api_client.call_api(:GET, local_var_path,
98
90
  :query_params => query_params,
99
- :form_params => form_params,
100
91
  :body => post_body)
101
- return data, status_code, headers
92
+ return data
102
93
  end
103
94
 
104
95
  # Update template
@@ -107,15 +98,13 @@ module MailchimpMarketing
107
98
  fail ArgumentError, "Missing required param: 'body'" if body.nil?
108
99
 
109
100
  query_params = {}
110
- form_params = {}
111
101
  post_body = @api_client.object_to_http_body(body)
112
102
 
113
103
  local_var_path = '/templates/{template_id}'.sub('{' + 'template_id' + '}', template_id.to_s)
114
- data, status_code, headers = @api_client.call_api(:PATCH, local_var_path,
104
+ data = @api_client.call_api(:PATCH, local_var_path,
115
105
  :query_params => query_params,
116
- :form_params => form_params,
117
106
  :body => post_body)
118
- return data, status_code, headers
107
+ return data
119
108
  end
120
109
 
121
110
  # Add template
@@ -123,15 +112,13 @@ module MailchimpMarketing
123
112
  fail ArgumentError, "Missing required param: 'body'" if body.nil?
124
113
 
125
114
  query_params = {}
126
- form_params = {}
127
115
  post_body = @api_client.object_to_http_body(body)
128
116
 
129
117
  local_var_path = '/templates'
130
- data, status_code, headers = @api_client.call_api(:POST, local_var_path,
118
+ data = @api_client.call_api(:POST, local_var_path,
131
119
  :query_params => query_params,
132
- :form_params => form_params,
133
120
  :body => post_body)
134
- return data, status_code, headers
121
+ return data
135
122
  end
136
123
  end
137
124
  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.7
6
+ OpenAPI spec version: 3.0.12
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,7 +11,6 @@ Swagger Codegen version: 2.4.12
11
11
  =end
12
12
 
13
13
  require 'uri'
14
- require 'json'
15
14
 
16
15
  module MailchimpMarketing
17
16
  class VerifiedDomainsApi
@@ -26,15 +25,13 @@ module MailchimpMarketing
26
25
  fail ArgumentError, "Missing required param: 'body'" if body.nil?
27
26
 
28
27
  query_params = {}
29
- form_params = {}
30
28
  post_body = @api_client.object_to_http_body(body)
31
29
 
32
30
  local_var_path = '/verified-domains'
33
- data, status_code, headers = @api_client.call_api(:POST, local_var_path,
31
+ data = @api_client.call_api(:POST, local_var_path,
34
32
  :query_params => query_params,
35
- :form_params => form_params,
36
33
  :body => post_body)
37
- return data, status_code, headers
34
+ return data
38
35
  end
39
36
 
40
37
  # Delete domain
@@ -42,15 +39,13 @@ module MailchimpMarketing
42
39
  fail ArgumentError, "Missing required param: 'domain_name'" if domain_name.nil?
43
40
 
44
41
  query_params = {}
45
- form_params = {}
46
42
  post_body = nil
47
43
 
48
44
  local_var_path = '/verified-domains/{domain_name}'.sub('{' + 'domain_name' + '}', domain_name.to_s)
49
- data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
45
+ data = @api_client.call_api(:DELETE, local_var_path,
50
46
  :query_params => query_params,
51
- :form_params => form_params,
52
47
  :body => post_body)
53
- return data, status_code, headers
48
+ return data
54
49
  end
55
50
 
56
51
  # Get domain info
@@ -58,30 +53,26 @@ module MailchimpMarketing
58
53
  fail ArgumentError, "Missing required param: 'domain_name'" if domain_name.nil?
59
54
 
60
55
  query_params = {}
61
- form_params = {}
62
56
  post_body = nil
63
57
 
64
58
  local_var_path = '/verified-domains/{domain_name}'.sub('{' + 'domain_name' + '}', domain_name.to_s)
65
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
59
+ data = @api_client.call_api(:GET, local_var_path,
66
60
  :query_params => query_params,
67
- :form_params => form_params,
68
61
  :body => post_body)
69
- return data, status_code, headers
62
+ return data
70
63
  end
71
64
 
72
65
  # List sending domains
73
66
  def get_verified_domains_all(opts = {})
74
67
 
75
68
  query_params = {}
76
- form_params = {}
77
69
  post_body = nil
78
70
 
79
71
  local_var_path = '/verified-domains'
80
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
72
+ data = @api_client.call_api(:GET, local_var_path,
81
73
  :query_params => query_params,
82
- :form_params => form_params,
83
74
  :body => post_body)
84
- return data, status_code, headers
75
+ return data
85
76
  end
86
77
 
87
78
  # Verify domain
@@ -90,15 +81,13 @@ module MailchimpMarketing
90
81
  fail ArgumentError, "Missing required param: 'body'" if body.nil?
91
82
 
92
83
  query_params = {}
93
- form_params = {}
94
84
  post_body = @api_client.object_to_http_body(body)
95
85
 
96
86
  local_var_path = '/verified-domains/{domain_name}/actions/verify'.sub('{' + 'domain_name' + '}', domain_name.to_s)
97
- data, status_code, headers = @api_client.call_api(:POST, local_var_path,
87
+ data = @api_client.call_api(:POST, local_var_path,
98
88
  :query_params => query_params,
99
- :form_params => form_params,
100
89
  :body => post_body)
101
- return data, status_code, headers
90
+ return data
102
91
  end
103
92
  end
104
93
  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.7
6
+ OpenAPI spec version: 3.0.12
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,7 +11,7 @@ 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
@@ -41,6 +41,7 @@ module MailchimpMarketing
41
41
  def set_config(config = {})
42
42
  @api_key = config[:api_key] || ''
43
43
  @is_basic_auth = @api_key.to_s.strip.empty? == false
44
+
44
45
  @access_token = config[:access_token] || ''
45
46
  @is_oauth = @access_token.to_s.strip.empty? == false
46
47
 
@@ -53,118 +54,30 @@ module MailchimpMarketing
53
54
  end
54
55
 
55
56
  def call_api(http_method, path, opts = {})
56
- header_params = {
57
- 'Content-Type' => 'application/json',
58
- 'User-Agent' => @user_agent
59
- }
60
- query_params = opts[:query_params] || {}
61
- form_params = opts[:form_params] || {}
62
-
63
- body = {}
64
- if [:post, :patch, :put, :delete].include?(http_method.to_sym.downcase)
65
- body = build_request_body(header_params, form_params, opts[:body])
66
- end
67
-
68
- res = request(http_method, path, query_params, header_params, body)
69
-
70
- if res.status <= 200
71
- data = JSON.parse(res.body)
72
- data
73
- else
74
- fail ApiError.new(res.body)
75
- end
76
- 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
77
60
 
78
- def request(http_method, path, query_params = nil, header_params = nil, body = nil)
79
61
  host = @server.length > 0 ? @host.sub('server', @server) : @host
80
- url = host + path
81
-
82
- # Apply Authentication
83
- conn = Faraday.new(url) do |conn|
84
- conn.headers = header_params
85
- conn.params = query_params
86
-
87
- if @is_basic_auth
88
- conn.basic_auth('user', @api_key)
89
- elsif @is_oauth
90
- conn.headers["Authorization"] = "Bearer #{@access_token}"
91
- end
92
- end
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.delete do |req|
97
- req.body = body
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
108
- end
109
- when :put
110
- conn.put do |req|
111
- req.body = body
112
- end
113
- when :patch
114
- conn.patch do |req|
115
- req.body = body
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
71
 
122
- # Sanitize filename by removing path.
123
- # e.g. ../../sun.gif becomes sun.gif
124
- def sanitize_filename(filename)
125
- filename.gsub(/.*[\/\\]/, '')
126
- end
72
+ data = nil
73
+ data = JSON.parse(res.body) if res.status == 200
74
+ data = "success" if res.status == 204
127
75
 
128
- # Add leading and trailing slashes to path
129
- def build_request_url(path)
130
- path = "/#{path}".gsub(/\/+/, '/')
131
- URI.encode(@config.base_url + path)
132
- end
133
-
134
- # Format HTTP request body
135
- def build_request_body(header_params, form_params, body)
136
- if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
137
- header_params['Content-Type'] == 'multipart/form-data'
138
- data = {}
139
- form_params.each do |key, value|
140
- case value
141
- when ::File, ::Array, nil
142
- data[key] = value
143
- else
144
- data[key] = value.to_s
145
- end
146
- end
147
- elsif body
148
- data = body.is_a?(String) ? body : body.to_json
149
- else
150
- data = nil
76
+ if (!data)
77
+ fail ApiError.new(:status => res.status, :response_body => res.body)
151
78
  end
152
- data
153
- end
154
79
 
155
- # Return Accept header based on an array of accepts provided.
156
- def select_header_accept(accepts)
157
- return nil if accepts.nil? || accepts.empty?
158
- json_accept = accepts.find { |s| json_mime?(s) }
159
- json_accept || accepts.join(',')
160
- end
161
-
162
- # Return Content-Type header based on an array of content types provided.
163
- def select_header_content_type(content_types)
164
- return 'application/json' if content_types.nil? || content_types.empty?
165
-
166
- json_content_type = content_types.find { |s| json_mime?(s) }
167
- json_content_type || content_types.first
80
+ return data
168
81
  end
169
82
 
170
83
  # Convert object (array, hash, object, etc) to JSON string.
@@ -205,10 +118,5 @@ module MailchimpMarketing
205
118
  fail "unknown collection format: #{collection_format.inspect}"
206
119
  end
207
120
  end
208
-
209
- # Check if the given MIME is a JSON MIME.
210
- def json_mime?(mime)
211
- (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
212
- end
213
121
  end
214
122
  end