mailchimp-rest-api 0.4.1 → 0.5.0
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/README.md +43 -1
- data/VERSION +1 -1
- data/lib/mailchimp-api/client/api_methods.rb +40 -0
- data/lib/mailchimp-api/resources/audience/interest_categories.rb +7 -7
- data/lib/mailchimp-api/resources/audience/interests.rb +7 -7
- data/lib/mailchimp-api/resources/audience/member_tags.rb +4 -4
- data/lib/mailchimp-api/resources/audience/members.rb +8 -8
- data/lib/mailchimp-api/resources/audience/merge_fields.rb +106 -0
- data/lib/mailchimp-api/resources/audience/segment_members.rb +5 -5
- data/lib/mailchimp-api/resources/audience/segments.rb +8 -8
- data/lib/mailchimp-api/resources/audience/webhooks.rb +7 -7
- data/lib/mailchimp-api/resources/audiences.rb +110 -0
- data/lib/mailchimp-api/resources/campaign/content.rb +43 -0
- data/lib/mailchimp-api/resources/campaign_folders.rb +95 -0
- data/lib/mailchimp-api/resources/campaigns.rb +228 -0
- data/lib/mailchimp-api.rb +47 -7
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d94ff493013bfef1b4e8ea9d47fb94558674a3305edd3ce8d4ec244bb110aae4
|
4
|
+
data.tar.gz: f163f90b0ca0cfb0774ea113f12aa49883d960bd2656310b657ce8910abce48a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 779286dce0873745097ecec8dc2373cab38e2ab9d1347b280fd0a8d0595c7f639c871490b54fd35a31f071045e56d47829854946df7a00110310fae80353dac8
|
7
|
+
data.tar.gz: ac36c92d833b6130466f183775d633c5500dc3421bb19999241b5248aa0f055fdf125f0d22d952ed2ebada15989c62f485bcc86e6950814e83aa0c7de1677b25
|
data/README.md
CHANGED
@@ -169,6 +169,16 @@ Most resources support this APIs:
|
|
169
169
|
- `delete` - Delete item
|
170
170
|
- `each` - Iterate through items
|
171
171
|
|
172
|
+
### MailchimpAPI.audiences
|
173
|
+
|
174
|
+
- `list` - List audiences (lists)
|
175
|
+
- `create(list_id, body: {})` - Add audience
|
176
|
+
- `show(list_id)` - Show audience
|
177
|
+
- `update(list_id, body: {})` - Update audience
|
178
|
+
- `delete(list_id)` - Delete audience
|
179
|
+
- `each(list_id)` - Iterate audiences
|
180
|
+
- `batch_update_members(list_id, body: {})` - Batch update audience members
|
181
|
+
|
172
182
|
### MailchimpAPI.audience_members
|
173
183
|
|
174
184
|
- `list(list_id)` - List members
|
@@ -186,6 +196,15 @@ Most resources support this APIs:
|
|
186
196
|
- `create(list_id, email, body: { tags: [{name: 'x'}] })` - Add tags
|
187
197
|
- `each(list_id, email)` - Iterate tags
|
188
198
|
|
199
|
+
### MailchimpAPI.audience_merge_fields
|
200
|
+
|
201
|
+
- `list(list_id)` - List merge fields
|
202
|
+
- `create(list_id, body: { name: 'x' })` - Create merge field
|
203
|
+
- `show(list_id, field_id)` - Get merge field
|
204
|
+
- `update(list_id, field_id, body: { name: 'x' })` - Update merge field
|
205
|
+
- `delete(list_id, field_id)` - Delete merge field
|
206
|
+
- `each(list_id)` - Iterate merge fields
|
207
|
+
|
189
208
|
### MailchimpAPI.audience_segments
|
190
209
|
|
191
210
|
- `list(list_id)` - List segments
|
@@ -228,7 +247,30 @@ Most resources support this APIs:
|
|
228
247
|
- `show(list_id, webhook_id)` - Get webhook
|
229
248
|
- `update(list_id, webhook_id, body: { events: {} })` - Update webhook
|
230
249
|
- `delete(list_id, webhook_id)` - Delete webhook
|
231
|
-
- `each(list_id)` - Iterate
|
250
|
+
- `each(list_id)` - Iterate webh
|
251
|
+
|
252
|
+
### MailchimpAPI.campaigns
|
253
|
+
|
254
|
+
- `list` - List campaigns
|
255
|
+
- `create(body: {})` - Create campaign
|
256
|
+
- `show(campaign_id)` - Get campaign
|
257
|
+
- `update(campaign_id, body: {})` - Update campaign
|
258
|
+
- `delete(campaign_id)` - Delete campaign
|
259
|
+
- `each` - Iterate campaigns
|
260
|
+
|
261
|
+
### MailchimpAPI.campaign_content
|
262
|
+
|
263
|
+
- `show(campaign_id)` - Shows campaign content
|
264
|
+
- `update(campaign_id, body: {})` - Updates HTML and text campaign content
|
265
|
+
|
266
|
+
### MailchimpAPI.campaign_folders
|
267
|
+
|
268
|
+
- `list` - List campaign folders
|
269
|
+
- `create(body: {})` - Create campaign folder
|
270
|
+
- `show(folder_id)` - Get campaign folder
|
271
|
+
- `update(folder_id, body: {})` - Update campaign folder
|
272
|
+
- `delete(folder_id)` - Delete campaign folder
|
273
|
+
- `each` - Iterate campaign folders
|
232
274
|
|
233
275
|
### Pagination
|
234
276
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
@@ -36,6 +36,14 @@ module MailchimpAPI
|
|
36
36
|
Audience::Members.new(self)
|
37
37
|
end
|
38
38
|
|
39
|
+
# Returns a new instance of Audience::MergeFields
|
40
|
+
# @return [Audience::MergeFields] Merge Fields resource
|
41
|
+
# @example
|
42
|
+
# client.audience_merge_fields # => #<MailchimpAPI::Audience::MergeFields>
|
43
|
+
def audience_merge_fields
|
44
|
+
Audience::MergeFields.new(self)
|
45
|
+
end
|
46
|
+
|
39
47
|
# Returns a new instance of Audience::Segments
|
40
48
|
# @return [Audience::Segments] Segments resource
|
41
49
|
# @example
|
@@ -59,6 +67,38 @@ module MailchimpAPI
|
|
59
67
|
def audience_webhooks
|
60
68
|
Audience::Webhooks.new(self)
|
61
69
|
end
|
70
|
+
|
71
|
+
# Returns a new instance of Audiences
|
72
|
+
# @return [Audiences] Audiences resource
|
73
|
+
# @example
|
74
|
+
# client.audiences # => #<MailchimpAPI::Audiences>
|
75
|
+
def audiences
|
76
|
+
Audiences.new(self)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Returns a new instance of Campaign::Content
|
80
|
+
# @return [Campaign::Content] Campaign::Content resource
|
81
|
+
# @example
|
82
|
+
# client.campaign_content # => #<MailchimpAPI::Campaign::Content>
|
83
|
+
def campaign_content
|
84
|
+
Campaign::Content.new(self)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Returns a new instance of CampaignFolders
|
88
|
+
# @return [CampaignFolders] CampaignFolders resource
|
89
|
+
# @example
|
90
|
+
# client.campaign_folders # => #<MailchimpAPI::CampaignFolders>
|
91
|
+
def campaign_folders
|
92
|
+
CampaignFolders.new(self)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Returns a new instance of Campaigns
|
96
|
+
# @return [Campaigns] Campaigns resource
|
97
|
+
# @example
|
98
|
+
# client.campaigns # => #<MailchimpAPI::Campaigns>
|
99
|
+
def campaigns
|
100
|
+
Campaigns.new(self)
|
101
|
+
end
|
62
102
|
end
|
63
103
|
end
|
64
104
|
end
|
@@ -9,13 +9,13 @@ module MailchimpAPI
|
|
9
9
|
module APIs
|
10
10
|
include Pagination::ListEachItemHelper
|
11
11
|
|
12
|
-
# List
|
12
|
+
# List interest categories for a specific list
|
13
13
|
# @param list_id [String] The ID of the Mailchimp list
|
14
14
|
# @param query [Hash] Optional query parameters
|
15
15
|
# @param body [Hash] Optional request body
|
16
16
|
# @param headers [Hash] Optional request headers
|
17
|
-
# @return [
|
18
|
-
# @example Get
|
17
|
+
# @return [Response] API response containing interest categories
|
18
|
+
# @example Get interest categories for a list
|
19
19
|
# interest_categories.list('list123')
|
20
20
|
def list(list_id, query: nil, body: nil, headers: nil)
|
21
21
|
path = "/lists/#{list_id}/interest-categories"
|
@@ -29,7 +29,7 @@ module MailchimpAPI
|
|
29
29
|
# @option body [String] :title The title of the interest category
|
30
30
|
# @option body [String] :type The type of interest category (checkboxes, dropdown, radio, hidden)
|
31
31
|
# @param headers [Hash] Optional request headers
|
32
|
-
# @return [
|
32
|
+
# @return [Response] API response containing the created interest category
|
33
33
|
# @example Create a checkbox interest category
|
34
34
|
# interest_categories.create('list123', body: {
|
35
35
|
# title: 'Favorite Products',
|
@@ -46,7 +46,7 @@ module MailchimpAPI
|
|
46
46
|
# @param query [Hash] Optional query parameters
|
47
47
|
# @param body [Hash] Optional request body
|
48
48
|
# @param headers [Hash] Optional request headers
|
49
|
-
# @return [
|
49
|
+
# @return [Response] API response containing interest category details
|
50
50
|
# @example Get details for an interest category
|
51
51
|
# interest_categories.show('list123', 'category456')
|
52
52
|
def show(list_id, interest_category_id, query: nil, body: nil, headers: nil)
|
@@ -60,7 +60,7 @@ module MailchimpAPI
|
|
60
60
|
# @param query [Hash] Optional query parameters
|
61
61
|
# @param body [Hash] Optional request body
|
62
62
|
# @param headers [Hash] Optional request headers
|
63
|
-
# @return [
|
63
|
+
# @return [Response] API response
|
64
64
|
# @example Delete an interest category
|
65
65
|
# interest_categories.delete('list123', 'category456')
|
66
66
|
def delete(list_id, interest_category_id, query: nil, body: nil, headers: nil)
|
@@ -74,7 +74,7 @@ module MailchimpAPI
|
|
74
74
|
# @param query [Hash] Optional query parameters
|
75
75
|
# @param body [Hash] Updated interest category attributes
|
76
76
|
# @param headers [Hash] Optional request headers
|
77
|
-
# @return [
|
77
|
+
# @return [Response] API response containing updated interest category
|
78
78
|
# @example Update an interest category title
|
79
79
|
# interest_categories.update('list123', 'category456', body: {
|
80
80
|
# title: 'Updated Category Name'
|
@@ -9,14 +9,14 @@ module MailchimpAPI
|
|
9
9
|
module APIs
|
10
10
|
include Pagination::ListEachItemHelper
|
11
11
|
|
12
|
-
# List
|
12
|
+
# List interests in a specific interest category
|
13
13
|
# @param list_id [String] The ID of the Mailchimp list
|
14
14
|
# @param interest_category_id [String] The ID of the interest category
|
15
15
|
# @param query [Hash] Optional query parameters
|
16
16
|
# @param body [Hash] Optional request body
|
17
17
|
# @param headers [Hash] Optional request headers
|
18
|
-
# @return [
|
19
|
-
# @example Get
|
18
|
+
# @return [Response] API response containing interests
|
19
|
+
# @example Get interests in a category
|
20
20
|
# interests.list('list123', 'category456')
|
21
21
|
def list(list_id, interest_category_id, query: nil, body: nil, headers: nil)
|
22
22
|
path = "/lists/#{list_id}/interest-categories/#{interest_category_id}/interests"
|
@@ -30,7 +30,7 @@ module MailchimpAPI
|
|
30
30
|
# @param body [Hash] Interest attributes
|
31
31
|
# @option body [String] :name The name of the interest
|
32
32
|
# @param headers [Hash] Optional request headers
|
33
|
-
# @return [
|
33
|
+
# @return [Response] API response containing the created interest
|
34
34
|
# @example Create a new interest
|
35
35
|
# interests.create('list123', 'category456', body: {
|
36
36
|
# name: 'Product Updates'
|
@@ -47,7 +47,7 @@ module MailchimpAPI
|
|
47
47
|
# @param query [Hash] Optional query parameters
|
48
48
|
# @param body [Hash] Optional request body
|
49
49
|
# @param headers [Hash] Optional request headers
|
50
|
-
# @return [
|
50
|
+
# @return [Response] API response containing interest details
|
51
51
|
# @example Get details for an interest
|
52
52
|
# interests.show('list123', 'category456', 'interest789')
|
53
53
|
def show(list_id, interest_category_id, interest_id, query: nil, body: nil, headers: nil)
|
@@ -62,7 +62,7 @@ module MailchimpAPI
|
|
62
62
|
# @param query [Hash] Optional query parameters
|
63
63
|
# @param body [Hash] Optional request body
|
64
64
|
# @param headers [Hash] Optional request headers
|
65
|
-
# @return [
|
65
|
+
# @return [Response] API response
|
66
66
|
# @example Delete an interest
|
67
67
|
# interests.delete('list123', 'category456', 'interest789')
|
68
68
|
def delete(list_id, interest_category_id, interest_id, query: nil, body: nil, headers: nil)
|
@@ -77,7 +77,7 @@ module MailchimpAPI
|
|
77
77
|
# @param query [Hash] Optional query parameters
|
78
78
|
# @param body [Hash] Updated interest attributes
|
79
79
|
# @param headers [Hash] Optional request headers
|
80
|
-
# @return [
|
80
|
+
# @return [Response] API response containing updated interest
|
81
81
|
# @example Update an interest name
|
82
82
|
# interests.update('list123', 'category456', 'interest789', body: {
|
83
83
|
# name: 'Updated Interest Name'
|
@@ -10,14 +10,14 @@ module MailchimpAPI
|
|
10
10
|
include Pagination::ListEachItemHelper
|
11
11
|
include MailchimpAPI::Audience::Utils
|
12
12
|
|
13
|
-
# List
|
13
|
+
# List tags for a specific member
|
14
14
|
# @param list_id [String] The ID of the Mailchimp list
|
15
15
|
# @param email [String] The member's email address
|
16
16
|
# @param query [Hash] Optional query parameters
|
17
17
|
# @param body [Hash] Optional request body
|
18
18
|
# @param headers [Hash] Optional request headers
|
19
|
-
# @return [
|
20
|
-
# @example Get
|
19
|
+
# @return [Response] API response containing member tags
|
20
|
+
# @example Get tags for a member
|
21
21
|
# member_tags.list('list123', 'user@example.com')
|
22
22
|
def list(list_id, email, query: nil, body: nil, headers: nil)
|
23
23
|
path = "/lists/#{list_id}/members/#{subscriber_hash(email)}/tags"
|
@@ -31,7 +31,7 @@ module MailchimpAPI
|
|
31
31
|
# @param body [Hash] Tags to add/update
|
32
32
|
# @option body [Array<Hash>] :tags Array of tag objects
|
33
33
|
# @param headers [Hash] Optional request headers
|
34
|
-
# @return [
|
34
|
+
# @return [Response] API response containing update status
|
35
35
|
# @example Add tags to a member
|
36
36
|
# member_tags.create('list123', 'user@example.com', body: {
|
37
37
|
# tags: [
|
@@ -11,14 +11,14 @@ module MailchimpAPI
|
|
11
11
|
include Pagination::ListEachItemHelper
|
12
12
|
include MailchimpAPI::Audience::Utils
|
13
13
|
|
14
|
-
# List
|
14
|
+
# List members in a specific list
|
15
15
|
# @param list_id [String] The ID of the Mailchimp list
|
16
16
|
# @param query [Hash] Optional query parameters
|
17
17
|
# @option query [Integer] :count Number of records to return (default: 10)
|
18
18
|
# @option query [Integer] :offset Number of records to skip (default: 0)
|
19
19
|
# @param body [Hash] Optional request body
|
20
20
|
# @param headers [Hash] Optional request headers
|
21
|
-
# @return [
|
21
|
+
# @return [Response] API response containing list members
|
22
22
|
# @example Get first 10 members of a list
|
23
23
|
# members.list('list123')
|
24
24
|
# @example Get members 11-20
|
@@ -36,7 +36,7 @@ module MailchimpAPI
|
|
36
36
|
# @option body [String] :status Subscription status (subscribed, unsubscribed, etc.)
|
37
37
|
# @option body [Hash] :merge_fields Merge fields like FNAME, LNAME
|
38
38
|
# @param headers [Hash] Optional request headers
|
39
|
-
# @return [
|
39
|
+
# @return [Response] API response containing the created member
|
40
40
|
# @example Add a new subscriber
|
41
41
|
# members.create('list123', body: {
|
42
42
|
# email_address: 'new@example.com',
|
@@ -54,7 +54,7 @@ module MailchimpAPI
|
|
54
54
|
# @param query [Hash] Optional query parameters
|
55
55
|
# @param body [Hash] Optional request body
|
56
56
|
# @param headers [Hash] Optional request headers
|
57
|
-
# @return [
|
57
|
+
# @return [Response] API response containing member details
|
58
58
|
# @example Get member details
|
59
59
|
# members.show('list123', 'user@example.com')
|
60
60
|
def show(list_id, email, query: nil, body: nil, headers: nil)
|
@@ -68,7 +68,7 @@ module MailchimpAPI
|
|
68
68
|
# @param query [Hash] Optional query parameters
|
69
69
|
# @param body [Hash] Optional request body
|
70
70
|
# @param headers [Hash] Optional request headers
|
71
|
-
# @return [
|
71
|
+
# @return [Response] API response
|
72
72
|
# @example Archive a member
|
73
73
|
# members.archive('list123', 'user@example.com')
|
74
74
|
def archive(list_id, email, query: nil, body: nil, headers: nil)
|
@@ -82,7 +82,7 @@ module MailchimpAPI
|
|
82
82
|
# @param query [Hash] Optional query parameters
|
83
83
|
# @param body [Hash] Updated member attributes
|
84
84
|
# @param headers [Hash] Optional request headers
|
85
|
-
# @return [
|
85
|
+
# @return [Response] API response containing updated member
|
86
86
|
# @example Update member status
|
87
87
|
# members.update('list123', 'user@example.com', body: {
|
88
88
|
# status: 'unsubscribed'
|
@@ -98,7 +98,7 @@ module MailchimpAPI
|
|
98
98
|
# @param query [Hash] Optional query parameters
|
99
99
|
# @param body [Hash] Member attributes
|
100
100
|
# @param headers [Hash] Optional request headers
|
101
|
-
# @return [
|
101
|
+
# @return [Response] API response containing the member
|
102
102
|
# @example Add or update a member
|
103
103
|
# members.add_or_update('list123', 'user@example.com', body: {
|
104
104
|
# status: 'subscribed',
|
@@ -115,7 +115,7 @@ module MailchimpAPI
|
|
115
115
|
# @param query [Hash] Optional query parameters
|
116
116
|
# @param body [Hash] Optional request body
|
117
117
|
# @param headers [Hash] Optional request headers
|
118
|
-
# @return [
|
118
|
+
# @return [Response] API response
|
119
119
|
# @example Permanently delete a member
|
120
120
|
# members.delete_permanent('list123', 'user@example.com')
|
121
121
|
def delete_permanent(list_id, email, query: nil, body: nil, headers: nil)
|
@@ -0,0 +1,106 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MailchimpAPI
|
4
|
+
module Audience
|
5
|
+
# Provides methods for interacting with Mailchimp member fields
|
6
|
+
# Allows to manage merge fields for an audience
|
7
|
+
class MergeFields < Resource
|
8
|
+
# Module with endpoints for MergeFields APIs
|
9
|
+
module APIs
|
10
|
+
include Pagination::ListEachItemHelper
|
11
|
+
|
12
|
+
# List merge fields for a specific list
|
13
|
+
# @param list_id [String] The ID of the Mailchimp list
|
14
|
+
# @param query [Hash] Optional query parameters
|
15
|
+
# @param body [Hash] Optional request body
|
16
|
+
# @param headers [Hash] Optional request headers
|
17
|
+
# @return [Response] API response containing merge_fields
|
18
|
+
# @example Get merge fields for a list
|
19
|
+
# merge_fields.list('list123')
|
20
|
+
def list(list_id, query: nil, body: nil, headers: nil)
|
21
|
+
path = "/lists/#{list_id}/merge_fields"
|
22
|
+
client.get(path, query: query, body: body, headers: headers)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Create a new merge field
|
26
|
+
# @param list_id [String] The ID of the Mailchimp list
|
27
|
+
# @param query [Hash] Optional query parameters
|
28
|
+
# @param body [Hash] Merge field attributes
|
29
|
+
# @param headers [Hash] Optional request headers
|
30
|
+
# @return [Response] API response containing the created merge field
|
31
|
+
# @example Create a static merge field
|
32
|
+
# merge_fields.create('list123', body: {
|
33
|
+
# name: 'Settings link',
|
34
|
+
# tag: 'SETTINGS'
|
35
|
+
# type: 'text',
|
36
|
+
# public: false
|
37
|
+
# })
|
38
|
+
def create(list_id, query: nil, body: nil, headers: nil)
|
39
|
+
path = "/lists/#{list_id}/merge_fields"
|
40
|
+
client.post(path, query: query, body: body, headers: headers)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Show details for a specific merge field
|
44
|
+
# @param list_id [String] The ID of the Mailchimp list
|
45
|
+
# @param merge_id [String] The ID of the merge field
|
46
|
+
# @param query [Hash] Optional query parameters
|
47
|
+
# @param body [Hash] Optional request body
|
48
|
+
# @param headers [Hash] Optional request headers
|
49
|
+
# @return [Response] API response containing merge field details
|
50
|
+
# @example Get details for a merge field
|
51
|
+
# merge_fields.show('list123', 'mergefield456')
|
52
|
+
def show(list_id, merge_id, query: nil, body: nil, headers: nil)
|
53
|
+
path = "/lists/#{list_id}/merge_fields/#{merge_id}"
|
54
|
+
client.get(path, query: query, body: body, headers: headers)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Update a merge field
|
58
|
+
# @param list_id [String] The ID of the Mailchimp list
|
59
|
+
# @param merge_id [String] The ID of the merge field to update
|
60
|
+
# @param query [Hash] Optional query parameters
|
61
|
+
# @param body [Hash] Updated merge field attributes
|
62
|
+
# @param headers [Hash] Optional request headers
|
63
|
+
# @return [Response] API response containing updated merge field
|
64
|
+
# @example Update a merge field name
|
65
|
+
# merge_fields.update('list123', 'mergefield456', body: {
|
66
|
+
# name: 'Updated Merge Field Name'
|
67
|
+
# })
|
68
|
+
def update(list_id, merge_id, query: nil, body: nil, headers: nil)
|
69
|
+
path = "/lists/#{list_id}/merge_fields/#{merge_id}"
|
70
|
+
client.patch(path, query: query, body: body, headers: headers)
|
71
|
+
end
|
72
|
+
|
73
|
+
# Delete a merge field
|
74
|
+
# @param list_id [String] The ID of the Mailchimp list
|
75
|
+
# @param merge_id [String] The ID of the merge field to delete
|
76
|
+
# @param query [Hash] Optional query parameters
|
77
|
+
# @param body [Hash] Optional request body
|
78
|
+
# @param headers [Hash] Optional request headers
|
79
|
+
# @return [Response] API response
|
80
|
+
# @example Delete a merge field
|
81
|
+
# merge_fields.delete('list123', 'mergefield456')
|
82
|
+
def delete(list_id, merge_id, query: nil, body: nil, headers: nil)
|
83
|
+
path = "/lists/#{list_id}/merge_fields/#{merge_id}"
|
84
|
+
client.delete(path, query: query, body: body, headers: headers)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Iterate through all merge fields for a list
|
88
|
+
# @param list_id [String] The ID of the Mailchimp list
|
89
|
+
# @param query [Hash] Optional query parameters
|
90
|
+
# @param body [Hash] Optional request body
|
91
|
+
# @param headers [Hash] Optional request headers
|
92
|
+
# @yield [Hash] Each merge field
|
93
|
+
# @example Iterate through merge fields
|
94
|
+
# merge_fields.each('list123') do |merge_field|
|
95
|
+
# puts merge_field[:name]
|
96
|
+
# end
|
97
|
+
def each(list_id, query: nil, body: nil, headers: nil, &block)
|
98
|
+
list_each_item(:merge_fields, list_id, query: query, body: body, headers: headers, &block)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
include APIs
|
103
|
+
extend APIs
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -10,14 +10,14 @@ module MailchimpAPI
|
|
10
10
|
include Pagination::ListEachItemHelper
|
11
11
|
include MailchimpAPI::Audience::Utils
|
12
12
|
|
13
|
-
# List
|
13
|
+
# List members in a specific segment
|
14
14
|
# @param list_id [String] The ID of the Mailchimp list
|
15
15
|
# @param segment_id [String] The ID of the segment
|
16
16
|
# @param query [Hash] Optional query parameters
|
17
17
|
# @param body [Hash] Optional request body
|
18
18
|
# @param headers [Hash] Optional request headers
|
19
|
-
# @return [
|
20
|
-
# @example Get
|
19
|
+
# @return [Response] API response containing segment members
|
20
|
+
# @example Get members in a segment
|
21
21
|
# segment_members.list('list123', 'segment456')
|
22
22
|
def list(list_id, segment_id, query: nil, body: nil, headers: nil)
|
23
23
|
path = "/lists/#{list_id}/segments/#{segment_id}/members"
|
@@ -30,7 +30,7 @@ module MailchimpAPI
|
|
30
30
|
# @param query [Hash] Optional query parameters
|
31
31
|
# @param body [Hash] Member details
|
32
32
|
# @param headers [Hash] Optional request headers
|
33
|
-
# @return [
|
33
|
+
# @return [Response] API response containing the added member
|
34
34
|
# @example Add a member to a segment
|
35
35
|
# segment_members.create('list123', 'segment456', body: {
|
36
36
|
# email_address: 'new@example.com'
|
@@ -47,7 +47,7 @@ module MailchimpAPI
|
|
47
47
|
# @param query [Hash] Optional query parameters
|
48
48
|
# @param body [Hash] Optional request body
|
49
49
|
# @param headers [Hash] Optional request headers
|
50
|
-
# @return [
|
50
|
+
# @return [Response] API response
|
51
51
|
# @example Remove a member from a segment
|
52
52
|
# segment_members.delete('list123', 'segment456', 'user@example.com')
|
53
53
|
def delete(list_id, segment_id, email, query: nil, body: nil, headers: nil)
|
@@ -9,13 +9,13 @@ module MailchimpAPI
|
|
9
9
|
module APIs
|
10
10
|
include Pagination::ListEachItemHelper
|
11
11
|
|
12
|
-
# List
|
12
|
+
# List segments for a specific list
|
13
13
|
# @param list_id [String] The ID of the Mailchimp list
|
14
14
|
# @param query [Hash] Optional query parameters
|
15
15
|
# @param body [Hash] Optional request body
|
16
16
|
# @param headers [Hash] Optional request headers
|
17
|
-
# @return [
|
18
|
-
# @example Get
|
17
|
+
# @return [Response] API response containing segments
|
18
|
+
# @example Get segments for a list
|
19
19
|
# segments.list('list123')
|
20
20
|
def list(list_id, query: nil, body: nil, headers: nil)
|
21
21
|
path = "/lists/#{list_id}/segments"
|
@@ -29,7 +29,7 @@ module MailchimpAPI
|
|
29
29
|
# @option body [String] :name The name of the segment
|
30
30
|
# @option body [Array<Hash>] :conditions Segment conditions
|
31
31
|
# @param headers [Hash] Optional request headers
|
32
|
-
# @return [
|
32
|
+
# @return [Response] API response containing the created segment
|
33
33
|
# @example Create a static segment
|
34
34
|
# segments.create('list123', body: {
|
35
35
|
# name: 'Premium Customers',
|
@@ -46,7 +46,7 @@ module MailchimpAPI
|
|
46
46
|
# @param query [Hash] Optional query parameters
|
47
47
|
# @param body [Hash] Optional request body
|
48
48
|
# @param headers [Hash] Optional request headers
|
49
|
-
# @return [
|
49
|
+
# @return [Response] API response containing segment details
|
50
50
|
# @example Get details for a segment
|
51
51
|
# segments.show('list123', 'segment456')
|
52
52
|
def show(list_id, segment_id, query: nil, body: nil, headers: nil)
|
@@ -60,7 +60,7 @@ module MailchimpAPI
|
|
60
60
|
# @param query [Hash] Optional query parameters
|
61
61
|
# @param body [Hash] Updated segment attributes
|
62
62
|
# @param headers [Hash] Optional request headers
|
63
|
-
# @return [
|
63
|
+
# @return [Response] API response containing updated segment
|
64
64
|
# @example Update a segment name
|
65
65
|
# segments.update('list123', 'segment456', body: {
|
66
66
|
# name: 'Updated Segment Name'
|
@@ -76,7 +76,7 @@ module MailchimpAPI
|
|
76
76
|
# @param query [Hash] Optional query parameters
|
77
77
|
# @param body [Hash] Optional request body
|
78
78
|
# @param headers [Hash] Optional request headers
|
79
|
-
# @return [
|
79
|
+
# @return [Response] API response
|
80
80
|
# @example Delete a segment
|
81
81
|
# segments.delete('list123', 'segment456')
|
82
82
|
def delete(list_id, segment_id, query: nil, body: nil, headers: nil)
|
@@ -92,7 +92,7 @@ module MailchimpAPI
|
|
92
92
|
# @option body [Array<String>] :members_to_add Array of emails to add
|
93
93
|
# @option body [Array<String>] :members_to_remove Array of emails to remove
|
94
94
|
# @param headers [Hash] Optional request headers
|
95
|
-
# @return [
|
95
|
+
# @return [Response] API response containing update status
|
96
96
|
# @example Add and remove members from a segment
|
97
97
|
# segments.batch_add_or_remove_members('list123', 'segment456', body: {
|
98
98
|
# members_to_add: ['new@example.com'],
|
@@ -9,13 +9,13 @@ module MailchimpAPI
|
|
9
9
|
module APIs
|
10
10
|
include Pagination::ListEachItemHelper
|
11
11
|
|
12
|
-
# List
|
12
|
+
# List webhooks for a specific list
|
13
13
|
# @param list_id [String] The ID of the Mailchimp list
|
14
14
|
# @param query [Hash] Optional query parameters
|
15
15
|
# @param body [Hash] Optional request body
|
16
16
|
# @param headers [Hash] Optional request headers
|
17
|
-
# @return [
|
18
|
-
# @example Get
|
17
|
+
# @return [Response] API response containing webhooks
|
18
|
+
# @example Get webhooks for a list
|
19
19
|
# webhooks.list('list123')
|
20
20
|
def list(list_id, query: nil, body: nil, headers: nil)
|
21
21
|
path = "/lists/#{list_id}/webhooks"
|
@@ -29,7 +29,7 @@ module MailchimpAPI
|
|
29
29
|
# @option body [String] :url The URL for the webhook
|
30
30
|
# @option body [Hash] :events Events to subscribe to
|
31
31
|
# @param headers [Hash] Optional request headers
|
32
|
-
# @return [
|
32
|
+
# @return [Response] API response containing the created webhook
|
33
33
|
# @example Create a webhook for subscribe events
|
34
34
|
# webhooks.create('list123', body: {
|
35
35
|
# url: 'https://example.com/webhook',
|
@@ -46,7 +46,7 @@ module MailchimpAPI
|
|
46
46
|
# @param query [Hash] Optional query parameters
|
47
47
|
# @param body [Hash] Optional request body
|
48
48
|
# @param headers [Hash] Optional request headers
|
49
|
-
# @return [
|
49
|
+
# @return [Response] API response containing webhook details
|
50
50
|
# @example Get details for a webhook
|
51
51
|
# webhooks.show('list123', 'webhook456')
|
52
52
|
def show(list_id, webhook_id, query: nil, body: nil, headers: nil)
|
@@ -60,7 +60,7 @@ module MailchimpAPI
|
|
60
60
|
# @param query [Hash] Optional query parameters
|
61
61
|
# @param body [Hash] Optional request body
|
62
62
|
# @param headers [Hash] Optional request headers
|
63
|
-
# @return [
|
63
|
+
# @return [Response] API response
|
64
64
|
# @example Delete a webhook
|
65
65
|
# webhooks.delete('list123', 'webhook456')
|
66
66
|
def delete(list_id, webhook_id, query: nil, body: nil, headers: nil)
|
@@ -74,7 +74,7 @@ module MailchimpAPI
|
|
74
74
|
# @param query [Hash] Optional query parameters
|
75
75
|
# @param body [Hash] Updated webhook attributes
|
76
76
|
# @param headers [Hash] Optional request headers
|
77
|
-
# @return [
|
77
|
+
# @return [Response] API response containing updated webhook
|
78
78
|
# @example Update webhook events
|
79
79
|
# webhooks.update('list123', 'webhook456', body: {
|
80
80
|
# events: { subscribe: true, unsubscribe: true }
|
@@ -0,0 +1,110 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MailchimpAPI
|
4
|
+
# Provides methods for interacting with Mailchimp audiences
|
5
|
+
# Audience allows to store and manage your contacts.
|
6
|
+
class Audiences < Resource
|
7
|
+
# Module with endpoints for Audiences APIs
|
8
|
+
module APIs
|
9
|
+
include Pagination::ListEachItemHelper
|
10
|
+
|
11
|
+
# List audiences
|
12
|
+
# @param query [Hash] Optional query parameters
|
13
|
+
# @param body [Hash] Optional request body
|
14
|
+
# @param headers [Hash] Optional request headers
|
15
|
+
# @return [Response] API response containing audiences
|
16
|
+
# @example Get audiences
|
17
|
+
# audiences.list
|
18
|
+
def list(query: nil, body: nil, headers: nil)
|
19
|
+
path = "/lists"
|
20
|
+
client.get(path, query: query, body: body, headers: headers)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Create a new audience
|
24
|
+
# @param query [Hash] Optional query parameters
|
25
|
+
# @param body [Hash] Audience attributes
|
26
|
+
# @param headers [Hash] Optional request headers
|
27
|
+
# @return [Response] API response containing the created folder
|
28
|
+
# @example Create a new folder
|
29
|
+
# audiences.create(body: {name: 'Product Updates'})
|
30
|
+
def create(query: nil, body: nil, headers: nil)
|
31
|
+
path = "/lists"
|
32
|
+
client.post(path, query: query, body: body, headers: headers)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Show details for a specific audience
|
36
|
+
# @param list_id [String] The ID of the audience
|
37
|
+
# @param query [Hash] Optional query parameters
|
38
|
+
# @param body [Hash] Optional request body
|
39
|
+
# @param headers [Hash] Optional request headers
|
40
|
+
# @return [Response] API response containing audience details
|
41
|
+
# @example Get details for an audience
|
42
|
+
# audiences.show('audience789')
|
43
|
+
def show(list_id, query: nil, body: nil, headers: nil)
|
44
|
+
path = "/lists/#{list_id}"
|
45
|
+
client.get(path, query: query, body: body, headers: headers)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Delete an audience
|
49
|
+
# @param list_id [String] The ID of the audience
|
50
|
+
# @param query [Hash] Optional query parameters
|
51
|
+
# @param body [Hash] Optional request body
|
52
|
+
# @param headers [Hash] Optional request headers
|
53
|
+
# @return [Response] API response
|
54
|
+
# @example Delete an audience
|
55
|
+
# audiences.delete('audience789')
|
56
|
+
def delete(list_id, query: nil, body: nil, headers: nil)
|
57
|
+
path = "/lists/#{list_id}"
|
58
|
+
client.delete(path, query: query, body: body, headers: headers)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Update an audience
|
62
|
+
# @param list_id [String] The ID of the audience
|
63
|
+
# @param query [Hash] Optional query parameters
|
64
|
+
# @param body [Hash] Updated audience attributes
|
65
|
+
# @param headers [Hash] Optional request headers
|
66
|
+
# @return [Response] API response containing updated audience
|
67
|
+
# @example Update an audience name
|
68
|
+
# audiences.update('audience789', body: {
|
69
|
+
# name: 'Updated Audience Name'
|
70
|
+
# })
|
71
|
+
def update(list_id, query: nil, body: nil, headers: nil)
|
72
|
+
path = "/lists/#{list_id}"
|
73
|
+
client.patch(path, query: query, body: body, headers: headers)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Batch update members in audience
|
77
|
+
# @param list_id [String] The ID of the audience
|
78
|
+
# @param query [Hash] Optional query parameters
|
79
|
+
# @param body [Hash] Updated audience attributes
|
80
|
+
# @param headers [Hash] Optional request headers
|
81
|
+
# @return [Response] API response containing updated audience
|
82
|
+
# @example Update existing members
|
83
|
+
# audiences.update('audience789', body: {
|
84
|
+
# members: members,
|
85
|
+
# update_existing: true
|
86
|
+
# })
|
87
|
+
def batch_update_members(list_id, query: nil, body: nil, headers: nil)
|
88
|
+
path = "/lists/#{list_id}"
|
89
|
+
client.post(path, query: query, body: body, headers: headers)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Iterate through all audiences
|
93
|
+
# @param list_id [String] The ID of the audience
|
94
|
+
# @param query [Hash] Optional query parameters
|
95
|
+
# @param body [Hash] Optional request body
|
96
|
+
# @param headers [Hash] Optional request headers
|
97
|
+
# @yield [Hash] Each audience
|
98
|
+
# @example Iterate through all audiences
|
99
|
+
# audiences.each do |audience|
|
100
|
+
# puts audience[:name]
|
101
|
+
# end
|
102
|
+
def each(query: nil, body: nil, headers: nil, &block)
|
103
|
+
list_each_item(:lists, query: query, body: body, headers: headers, &block)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
include APIs
|
108
|
+
extend APIs
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MailchimpAPI
|
4
|
+
# Contains classes related to Campaign APIs collection
|
5
|
+
module Campaign
|
6
|
+
# Provides methods for interacting with Mailchimp campaign content
|
7
|
+
class Content < Resource
|
8
|
+
# Module with endpoints for Campaign::Content APIs
|
9
|
+
module APIs
|
10
|
+
# Get campaign content
|
11
|
+
# @param campaign_id [String] The ID of the campaign
|
12
|
+
# @param query [Hash] Optional query parameters
|
13
|
+
# @param body [Hash] Optional request body
|
14
|
+
# @param headers [Hash] Optional request headers
|
15
|
+
# @return [Response] API response containing campaign content details
|
16
|
+
# @example Get the the HTML and plain-text content for a campaign.
|
17
|
+
# campaign_content.show('campaign789')
|
18
|
+
def show(campaign_id, query: nil, body: nil, headers: nil)
|
19
|
+
path = "/campaigns/#{campaign_id}/content"
|
20
|
+
client.get(path, query: query, body: body, headers: headers)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Set campaign content
|
24
|
+
# @param campaign_id [String] The ID of the campaign
|
25
|
+
# @param query [Hash] Optional query parameters
|
26
|
+
# @param body [Hash] New campaign content data
|
27
|
+
# @param headers [Hash] Optional request headers
|
28
|
+
# @return [Response] API response containing updated campaign content details
|
29
|
+
# @example Set a campaign plain-text and HTML content
|
30
|
+
# campaigns.update('campaign789', body: {
|
31
|
+
# plain_text: 'Plain Text', html: { "<p>Raw HTML</p>" }
|
32
|
+
# })
|
33
|
+
def update(campaign_id, query: nil, body: nil, headers: nil)
|
34
|
+
path = "/campaigns/#{campaign_id}/content"
|
35
|
+
client.put(path, query: query, body: body, headers: headers)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
include APIs
|
40
|
+
extend APIs
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MailchimpAPI
|
4
|
+
# Provides methods for interacting with Mailchimp campaign folders
|
5
|
+
# Allows to organize your campaigns using folders
|
6
|
+
class CampaignFolders < Resource
|
7
|
+
# Module with endpoints for CampaignFolders APIs
|
8
|
+
module APIs
|
9
|
+
include Pagination::ListEachItemHelper
|
10
|
+
|
11
|
+
# List campaign folders
|
12
|
+
# @param query [Hash] Optional query parameters
|
13
|
+
# @param body [Hash] Optional request body
|
14
|
+
# @param headers [Hash] Optional request headers
|
15
|
+
# @return [Response] API response containing campaign folders
|
16
|
+
# @example Get campaign folders
|
17
|
+
# campaign_folders.list
|
18
|
+
def list(query: nil, body: nil, headers: nil)
|
19
|
+
path = "/campaign-folders"
|
20
|
+
client.get(path, query: query, body: body, headers: headers)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Create a new campaign folder
|
24
|
+
# @param query [Hash] Optional query parameters
|
25
|
+
# @param body [Hash] Campaign folder attributes
|
26
|
+
# @option body [String] :name The name of the folder
|
27
|
+
# @param headers [Hash] Optional request headers
|
28
|
+
# @return [Response] API response containing the created folder
|
29
|
+
# @example Create a new folder
|
30
|
+
# campaign_folders.create(body: {name: 'Product Updates'})
|
31
|
+
def create(query: nil, body: nil, headers: nil)
|
32
|
+
path = "/campaign-folders"
|
33
|
+
client.post(path, query: query, body: body, headers: headers)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Show details for a specific campaign folder
|
37
|
+
# @param folder_id [String] The ID of the campaign folder
|
38
|
+
# @param query [Hash] Optional query parameters
|
39
|
+
# @param body [Hash] Optional request body
|
40
|
+
# @param headers [Hash] Optional request headers
|
41
|
+
# @return [Response] API response containing campaign folder details
|
42
|
+
# @example Get details for a campaign folder
|
43
|
+
# campaign_folders.show('folder789')
|
44
|
+
def show(folder_id, query: nil, body: nil, headers: nil)
|
45
|
+
path = "/campaign-folders/#{folder_id}"
|
46
|
+
client.get(path, query: query, body: body, headers: headers)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Delete a campaign folder
|
50
|
+
# @param folder_id [String] The ID of the folder
|
51
|
+
# @param query [Hash] Optional query parameters
|
52
|
+
# @param body [Hash] Optional request body
|
53
|
+
# @param headers [Hash] Optional request headers
|
54
|
+
# @return [Response] API response
|
55
|
+
# @example Delete a campaign folder
|
56
|
+
# campaign_folders.delete('folder789')
|
57
|
+
def delete(folder_id, query: nil, body: nil, headers: nil)
|
58
|
+
path = "/campaign-folders/#{folder_id}"
|
59
|
+
client.delete(path, query: query, body: body, headers: headers)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Update a campaign folder
|
63
|
+
# @param folder_id [String] The ID of the folder
|
64
|
+
# @param query [Hash] Optional query parameters
|
65
|
+
# @param body [Hash] Updated campaign folder attributes
|
66
|
+
# @param headers [Hash] Optional request headers
|
67
|
+
# @return [Response] API response containing updated campaign folder
|
68
|
+
# @example Update a campaign folder name
|
69
|
+
# campaign_folders.update('folder789', body: {
|
70
|
+
# name: 'Updated Interest Name'
|
71
|
+
# })
|
72
|
+
def update(folder_id, query: nil, body: nil, headers: nil)
|
73
|
+
path = "/campaign-folders/#{folder_id}"
|
74
|
+
client.patch(path, query: query, body: body, headers: headers)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Iterate through all campaign folders
|
78
|
+
# @param list_id [String] The ID of the campaign folders
|
79
|
+
# @param query [Hash] Optional query parameters
|
80
|
+
# @param body [Hash] Optional request body
|
81
|
+
# @param headers [Hash] Optional request headers
|
82
|
+
# @yield [Hash] Each campaign folder
|
83
|
+
# @example Iterate through all campaign folders
|
84
|
+
# campaign_folders.each do |folder|
|
85
|
+
# puts interest[:name]
|
86
|
+
# end
|
87
|
+
def each(query: nil, body: nil, headers: nil, &block)
|
88
|
+
list_each_item(:folders, query: query, body: body, headers: headers, &block)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
include APIs
|
93
|
+
extend APIs
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,228 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MailchimpAPI
|
4
|
+
# Provides methods for interacting with Mailchimp campaigns
|
5
|
+
# Audience allows to store and manage your contacts.
|
6
|
+
class Campaigns < Resource
|
7
|
+
# Module with endpoints for Campaigns APIs
|
8
|
+
module APIs
|
9
|
+
include Pagination::ListEachItemHelper
|
10
|
+
|
11
|
+
# List campaigns
|
12
|
+
# @param query [Hash] Optional query parameters
|
13
|
+
# @param body [Hash] Optional request body
|
14
|
+
# @param headers [Hash] Optional request headers
|
15
|
+
# @return [Response] API response containing campaigns
|
16
|
+
# @example Get campaigns
|
17
|
+
# campaigns.list
|
18
|
+
def list(query: nil, body: nil, headers: nil)
|
19
|
+
path = "/campaigns"
|
20
|
+
client.get(path, query: query, body: body, headers: headers)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Create a new campaign
|
24
|
+
# @param query [Hash] Optional query parameters
|
25
|
+
# @param body [Hash] Audience attributes
|
26
|
+
# @param headers [Hash] Optional request headers
|
27
|
+
# @return [Response] API response containing the created folder
|
28
|
+
# @example Create a new folder
|
29
|
+
# campaigns.create(body: {name: 'Product Updates'})
|
30
|
+
def create(query: nil, body: nil, headers: nil)
|
31
|
+
path = "/campaigns"
|
32
|
+
client.post(path, query: query, body: body, headers: headers)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Show details for a specific campaign
|
36
|
+
# @param campaign_id [String] The ID of the campaign
|
37
|
+
# @param query [Hash] Optional query parameters
|
38
|
+
# @param body [Hash] Optional request body
|
39
|
+
# @param headers [Hash] Optional request headers
|
40
|
+
# @return [Response] API response containing campaign details
|
41
|
+
# @example Get details for a campaign
|
42
|
+
# campaigns.show('campaign789')
|
43
|
+
def show(campaign_id, query: nil, body: nil, headers: nil)
|
44
|
+
path = "/campaigns/#{campaign_id}"
|
45
|
+
client.get(path, query: query, body: body, headers: headers)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Delete a campaign
|
49
|
+
# @param campaign_id [String] The ID of the campaign
|
50
|
+
# @param query [Hash] Optional query parameters
|
51
|
+
# @param body [Hash] Optional request body
|
52
|
+
# @param headers [Hash] Optional request headers
|
53
|
+
# @return [Response] API response
|
54
|
+
# @example Delete a campaign
|
55
|
+
# campaigns.delete('campaign789')
|
56
|
+
def delete(campaign_id, query: nil, body: nil, headers: nil)
|
57
|
+
path = "/campaigns/#{campaign_id}"
|
58
|
+
client.delete(path, query: query, body: body, headers: headers)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Update campaign settings
|
62
|
+
# @param campaign_id [String] The ID of the campaign
|
63
|
+
# @param query [Hash] Optional query parameters
|
64
|
+
# @param body [Hash] Updated campaign attributes
|
65
|
+
# @param headers [Hash] Optional request headers
|
66
|
+
# @return [Response] API response containing updated campaign
|
67
|
+
# @example Update a campaign title
|
68
|
+
# campaigns.update('campaign789', body: {
|
69
|
+
# settings: { title: 'Updated Title' }
|
70
|
+
# })
|
71
|
+
def update(campaign_id, query: nil, body: nil, headers: nil)
|
72
|
+
path = "/campaigns/#{campaign_id}"
|
73
|
+
client.patch(path, query: query, body: body, headers: headers)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Iterate through all campaigns
|
77
|
+
# @param campaign_id [String] The ID of the campaign
|
78
|
+
# @param query [Hash] Optional query parameters
|
79
|
+
# @param body [Hash] Optional request body
|
80
|
+
# @param headers [Hash] Optional request headers
|
81
|
+
# @yield [Hash] Each campaign
|
82
|
+
# @example Iterate through all campaigns
|
83
|
+
# campaigns.each do |campaign|
|
84
|
+
# puts campaign[:name]
|
85
|
+
# end
|
86
|
+
def each(query: nil, body: nil, headers: nil, &block)
|
87
|
+
list_each_item(:campaigns, query: query, body: body, headers: headers, &block)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Cancel campaign [Mailchimp Pro]
|
91
|
+
# Cancel a campaign after you send, before all of your recipients receive it.
|
92
|
+
#
|
93
|
+
# @param campaign_id [String] The ID of the campaign
|
94
|
+
# @param query [Hash] Optional query parameters
|
95
|
+
# @param body [Hash] Optional body parameters
|
96
|
+
# @param headers [Hash] Optional request headers
|
97
|
+
# @return [Response] API response with no content (204)
|
98
|
+
# @example Cancel sending campaign
|
99
|
+
# campaigns.cancel_send('campaign789')
|
100
|
+
def cancel_send(campaign_id, query: nil, body: nil, headers: nil)
|
101
|
+
path = "/campaigns/#{campaign_id}/actions/cancel-send"
|
102
|
+
client.post(path, query: query, body: body, headers: headers)
|
103
|
+
end
|
104
|
+
|
105
|
+
# Send campaign
|
106
|
+
# For RSS Campaigns, the campaign will send according to its schedule.
|
107
|
+
# All other campaigns will send immediately.
|
108
|
+
#
|
109
|
+
# @param campaign_id [String] The ID of the campaign
|
110
|
+
# @param query [Hash] Optional query parameters
|
111
|
+
# @param body [Hash] Optional body parameters
|
112
|
+
# @param headers [Hash] Optional request headers
|
113
|
+
# @return [Response] API response with no content (204)
|
114
|
+
# @example Send campaign
|
115
|
+
# campaigns.action_send('campaign789')
|
116
|
+
def action_send(campaign_id, query: nil, body: nil, headers: nil)
|
117
|
+
path = "/campaigns/#{campaign_id}/actions/send"
|
118
|
+
client.post(path, query: query, body: body, headers: headers)
|
119
|
+
end
|
120
|
+
|
121
|
+
# Schedule campaign
|
122
|
+
# Schedule a campaign for delivery.
|
123
|
+
# If you're using Multivariate Campaigns to test send times or sending RSS Campaigns, use the send action instead.
|
124
|
+
#
|
125
|
+
# @param campaign_id [String] The ID of the campaign
|
126
|
+
# @param query [Hash] Optional query parameters
|
127
|
+
# @param body [Hash] Optional body parameters
|
128
|
+
# @param headers [Hash] Optional request headers
|
129
|
+
# @return [Response] API response with no content (204)
|
130
|
+
# @example Schedule campaign
|
131
|
+
# campaigns.schedule('campaign789')
|
132
|
+
def schedule(campaign_id, query: nil, body: nil, headers: nil)
|
133
|
+
path = "/campaigns/#{campaign_id}/actions/schedule"
|
134
|
+
client.post(path, query: query, body: body, headers: headers)
|
135
|
+
end
|
136
|
+
|
137
|
+
# Unschedule campaign
|
138
|
+
# Unschedule a scheduled campaign that hasn't started sending.
|
139
|
+
#
|
140
|
+
# @param campaign_id [String] The ID of the campaign
|
141
|
+
# @param query [Hash] Optional query parameters
|
142
|
+
# @param body [Hash] Optional body parameters
|
143
|
+
# @param headers [Hash] Optional request headers
|
144
|
+
# @return [Response] API response with no content (204)
|
145
|
+
# @example Unschedule campaign
|
146
|
+
# campaigns.unschedule('campaign789')
|
147
|
+
def unschedule(campaign_id, query: nil, body: nil, headers: nil)
|
148
|
+
path = "/campaigns/#{campaign_id}/actions/unschedule"
|
149
|
+
client.post(path, query: query, body: body, headers: headers)
|
150
|
+
end
|
151
|
+
|
152
|
+
# Pause RSS campaign
|
153
|
+
#
|
154
|
+
# @param campaign_id [String] The ID of the campaign
|
155
|
+
# @param query [Hash] Optional query parameters
|
156
|
+
# @param body [Hash] Optional body parameters
|
157
|
+
# @param headers [Hash] Optional request headers
|
158
|
+
# @return [Response] API response with no content (204)
|
159
|
+
# @example Pause campaign
|
160
|
+
# campaigns.pause('campaign789')
|
161
|
+
def pause(campaign_id, query: nil, body: nil, headers: nil)
|
162
|
+
path = "/campaigns/#{campaign_id}/actions/pause"
|
163
|
+
client.post(path, query: query, body: body, headers: headers)
|
164
|
+
end
|
165
|
+
|
166
|
+
# Resume RSS campaign
|
167
|
+
#
|
168
|
+
# @param campaign_id [String] The ID of the campaign
|
169
|
+
# @param query [Hash] Optional query parameters
|
170
|
+
# @param body [Hash] Optional body parameters
|
171
|
+
# @param headers [Hash] Optional request headers
|
172
|
+
# @return [Response] API response with no content (204)
|
173
|
+
# @example Resume campaign
|
174
|
+
# campaigns.resume('campaign789')
|
175
|
+
def resume(campaign_id, query: nil, body: nil, headers: nil)
|
176
|
+
path = "/campaigns/#{campaign_id}/actions/resume"
|
177
|
+
client.post(path, query: query, body: body, headers: headers)
|
178
|
+
end
|
179
|
+
|
180
|
+
# Replicate campaign
|
181
|
+
# Replicate a campaign in saved or send status.
|
182
|
+
#
|
183
|
+
# @param campaign_id [String] The ID of the campaign
|
184
|
+
# @param query [Hash] Optional query parameters
|
185
|
+
# @param body [Hash] Optional body parameters
|
186
|
+
# @param headers [Hash] Optional request headers
|
187
|
+
# @return [Response] API response with new campaign details
|
188
|
+
# @example Replicate campaign
|
189
|
+
# campaigns.replicate('campaign789')
|
190
|
+
def replicate(campaign_id, query: nil, body: nil, headers: nil)
|
191
|
+
path = "/campaigns/#{campaign_id}/actions/replicate"
|
192
|
+
client.post(path, query: query, body: body, headers: headers)
|
193
|
+
end
|
194
|
+
|
195
|
+
# Send test email
|
196
|
+
#
|
197
|
+
# @param campaign_id [String] The ID of the campaign
|
198
|
+
# @param query [Hash] Optional query parameters
|
199
|
+
# @param body [Hash] Optional body parameters
|
200
|
+
# @param headers [Hash] Optional request headers
|
201
|
+
# @return [Response] API response with no content (204)
|
202
|
+
# @example Send test email
|
203
|
+
# campaigns.test('campaign789', body: { test_emails: ["user1@example.com"], send_type: "html" })
|
204
|
+
def test(campaign_id, query: nil, body: nil, headers: nil)
|
205
|
+
path = "/campaigns/#{campaign_id}/actions/test"
|
206
|
+
client.post(path, query: query, body: body, headers: headers)
|
207
|
+
end
|
208
|
+
|
209
|
+
# Resend campaign
|
210
|
+
# Replicates campaign and resends it to non-openers, new subscribers, non-clickers or non-purchasers
|
211
|
+
#
|
212
|
+
# @param campaign_id [String] The ID of the campaign
|
213
|
+
# @param query [Hash] Optional query parameters
|
214
|
+
# @param body [Hash] Optional body parameters
|
215
|
+
# @param headers [Hash] Optional request headers
|
216
|
+
# @return [Response] API response with new campaign details
|
217
|
+
# @example Resend campaign to new subscribers
|
218
|
+
# campaigns.resend('campaign789', body: { shortcut_type: 'to_new_subscribers' })
|
219
|
+
def resend(campaign_id, query: nil, body: nil, headers: nil)
|
220
|
+
path = "/campaigns/#{campaign_id}/actions/create-resend"
|
221
|
+
client.post(path, query: query, body: body, headers: headers)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
include APIs
|
226
|
+
extend APIs
|
227
|
+
end
|
228
|
+
end
|
data/lib/mailchimp-api.rb
CHANGED
@@ -96,51 +96,86 @@ module MailchimpAPI
|
|
96
96
|
# Builds audience interest categories API resource
|
97
97
|
# @return [Audience::InterestCategories]
|
98
98
|
# the interest categories APIs collection
|
99
|
-
# @see
|
99
|
+
# @see Client#audience_interest_categories
|
100
100
|
def_delegators :@client, :audience_interest_categories
|
101
101
|
|
102
102
|
# @!method audience_interests
|
103
103
|
# Builds audience interests API resource
|
104
104
|
# @return [Audience::Interests]
|
105
105
|
# the interests APIs collection
|
106
|
-
# @see
|
106
|
+
# @see Client#audience_interests
|
107
107
|
def_delegators :@client, :audience_interests
|
108
108
|
|
109
109
|
# @!method audience_member_tags
|
110
110
|
# Builds audience member tags API resource
|
111
111
|
# @return [Audience::MemberTags]
|
112
112
|
# the member tags APIs collection
|
113
|
-
# @see
|
113
|
+
# @see Client#audience_member_tags
|
114
114
|
def_delegators :@client, :audience_member_tags
|
115
115
|
|
116
116
|
# @!method audience_members
|
117
117
|
# Builds audience members API resource
|
118
118
|
# @return [Audience::Members]
|
119
119
|
# the members APIs collection
|
120
|
-
# @see
|
120
|
+
# @see Client#audience_members
|
121
121
|
def_delegators :@client, :audience_members
|
122
122
|
|
123
|
+
# @!method audience_merge_fields
|
124
|
+
# Builds audience merge_fields API resource
|
125
|
+
# @return [Audience::MergeFields]
|
126
|
+
# the merge_fields APIs collection
|
127
|
+
# @see Client#audience_merge_fields
|
128
|
+
def_delegators :@client, :audience_merge_fields
|
129
|
+
|
123
130
|
# @!method audience_segment_members
|
124
131
|
# Builds audience segment members API resource
|
125
132
|
# @return [Audience::SegmentMembers]
|
126
133
|
# the segment members APIs collection
|
127
|
-
# @see
|
134
|
+
# @see Client#audience_segment_members
|
128
135
|
def_delegators :@client, :audience_segment_members
|
129
136
|
|
130
137
|
# @!method audience_segments
|
131
138
|
# Builds audience segments API resource
|
132
139
|
# @return [Audience::Segments]
|
133
140
|
# the segments APIs collection
|
134
|
-
# @see
|
141
|
+
# @see Client#audience_segments
|
135
142
|
def_delegators :@client, :audience_segments
|
136
143
|
|
137
144
|
# @!method audience_webhooks
|
138
145
|
# Builds audience webhooks API resource
|
139
146
|
# @return [Audience::Webhooks]
|
140
147
|
# the webhooks APIs collection
|
141
|
-
# @see
|
148
|
+
# @see Client#audience_webhooks
|
142
149
|
def_delegators :@client, :audience_webhooks
|
143
150
|
|
151
|
+
# @!method audiences
|
152
|
+
# Builds audiences API resource
|
153
|
+
# @return [Audiences]
|
154
|
+
# the audiences APIs collection
|
155
|
+
# @see Client#audiences
|
156
|
+
def_delegators :@client, :audiences
|
157
|
+
|
158
|
+
# @!method campaign_content
|
159
|
+
# Builds campaign_content API resource
|
160
|
+
# @return [CampaignFolders]
|
161
|
+
# the campaign_content APIs collection
|
162
|
+
# @see Client#campaign_content
|
163
|
+
def_delegators :@client, :campaign_content
|
164
|
+
|
165
|
+
# @!method campaign_folders
|
166
|
+
# Builds campaign_folders API resource
|
167
|
+
# @return [CampaignFolders]
|
168
|
+
# the campaign_folders APIs collection
|
169
|
+
# @see Client#campaign_folders
|
170
|
+
def_delegators :@client, :campaign_folders
|
171
|
+
|
172
|
+
# @!method campaigns
|
173
|
+
# Builds campaigns API resource
|
174
|
+
# @return [Campaigns]
|
175
|
+
# the campaigns APIs collection
|
176
|
+
# @see Client#campaigns
|
177
|
+
def_delegators :@client, :campaigns
|
178
|
+
|
144
179
|
# @!endgroup
|
145
180
|
|
146
181
|
# Returns the configured client instance
|
@@ -164,9 +199,14 @@ require_relative "mailchimp-api/resources/audience/interest_categories"
|
|
164
199
|
require_relative "mailchimp-api/resources/audience/interests"
|
165
200
|
require_relative "mailchimp-api/resources/audience/member_tags"
|
166
201
|
require_relative "mailchimp-api/resources/audience/members"
|
202
|
+
require_relative "mailchimp-api/resources/audience/merge_fields"
|
167
203
|
require_relative "mailchimp-api/resources/audience/webhooks"
|
168
204
|
require_relative "mailchimp-api/resources/audience/segments"
|
169
205
|
require_relative "mailchimp-api/resources/audience/segment_members"
|
206
|
+
require_relative "mailchimp-api/resources/audiences"
|
207
|
+
require_relative "mailchimp-api/resources/campaign/content"
|
208
|
+
require_relative "mailchimp-api/resources/campaign_folders"
|
209
|
+
require_relative "mailchimp-api/resources/campaigns"
|
170
210
|
require_relative "mailchimp-api/batch_request"
|
171
211
|
require_relative "mailchimp-api/client/api_methods"
|
172
212
|
require_relative "mailchimp-api/client/batch_methods"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailchimp-rest-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Glushkov
|
@@ -36,10 +36,15 @@ files:
|
|
36
36
|
- lib/mailchimp-api/resources/audience/interests.rb
|
37
37
|
- lib/mailchimp-api/resources/audience/member_tags.rb
|
38
38
|
- lib/mailchimp-api/resources/audience/members.rb
|
39
|
+
- lib/mailchimp-api/resources/audience/merge_fields.rb
|
39
40
|
- lib/mailchimp-api/resources/audience/segment_members.rb
|
40
41
|
- lib/mailchimp-api/resources/audience/segments.rb
|
41
42
|
- lib/mailchimp-api/resources/audience/utils/subscriber_hash.rb
|
42
43
|
- lib/mailchimp-api/resources/audience/webhooks.rb
|
44
|
+
- lib/mailchimp-api/resources/audiences.rb
|
45
|
+
- lib/mailchimp-api/resources/campaign/content.rb
|
46
|
+
- lib/mailchimp-api/resources/campaign_folders.rb
|
47
|
+
- lib/mailchimp-api/resources/campaigns.rb
|
43
48
|
- lib/mailchimp-api/response.rb
|
44
49
|
- lib/mailchimp-api/uri_builder.rb
|
45
50
|
- lib/mailchimp-api/version.rb
|
@@ -52,7 +57,7 @@ metadata:
|
|
52
57
|
changelog_uri: https://github.com/andreyruby/mailchimp-rest-api/CHANGELOG.md
|
53
58
|
documentation_uri: https://github.com/andreyruby/mailchimp-rest-api/README.md
|
54
59
|
homepage_uri: https://github.com/andreyruby/mailchimp-rest-api
|
55
|
-
source_code_uri: https://github.com/andreyruby/mailchimp-rest-api/tree/v0.
|
60
|
+
source_code_uri: https://github.com/andreyruby/mailchimp-rest-api/tree/v0.5.0
|
56
61
|
rdoc_options: []
|
57
62
|
require_paths:
|
58
63
|
- lib
|
@@ -67,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
72
|
- !ruby/object:Gem::Version
|
68
73
|
version: '0'
|
69
74
|
requirements: []
|
70
|
-
rubygems_version: 3.6.
|
75
|
+
rubygems_version: 3.6.9
|
71
76
|
specification_version: 4
|
72
77
|
summary: Mailchimp REST API (Marketing)
|
73
78
|
test_files: []
|