MailchimpMarketing 3.0.7 → 3.0.12

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/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