mailchimp_api 1.0.0.pre.10 → 1.0.0.pre.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f6fdd7c5517b8795a5317655bf1145e68b2ecabece259b998856be981eba3df
4
- data.tar.gz: b00a8146607c40be487607e9364f70d64c565de4629c70b4ccbd841c7d839633
3
+ metadata.gz: e1558e2a34a6df4a62a33ad95adcbad36e8ca962ba6598af347f03b5721bed4f
4
+ data.tar.gz: c4fd86b6e6994d92286f7ab63668e3578d2df89e0224353d6ca9b69c258c73ca
5
5
  SHA512:
6
- metadata.gz: 66859f76241ce09d94c5d91b10411b0bed47d88ca2ab044f1758f2ca155e4b3ad6a8d58c184df8bf9df5745db13a053177174fa4502231a06ec12ac535091815
7
- data.tar.gz: 60186078d7b5b3e942f6c9e418cbccc637dd74e8a48b976e1badbc54b3d6478f2513dd0e09978cabbc71aead6c7886510bbd0ab63f2bb7614ae432716922d5e4
6
+ metadata.gz: d4fa7b461537628d84b8cc5fdc4b02ace8f0d32de2c03dffa763c003e3ef0ea30c73c56cf7ee34f075cba10ae03214e7130377077052b35198ecc469af5ba3cb
7
+ data.tar.gz: b1792d1ed32d4007222bfd51d8c0010c1905dcfff17d7ce1adab380fc354b2dbf3d37cb4d0ee931a1a873d50c701c741a9ee137f4ac81846f7796fbc203014b9
@@ -11,6 +11,7 @@
11
11
  - Support of '/lists/<id>/members/<id>/notes'
12
12
  - Support of '/lists/<id>/members/<id>/tags'
13
13
  - Support of '/lists/<id>/segments'
14
+ - Support of '/lists/<id>/segments/<id>/members'
14
15
  - Support of '/lists/<id>/merge-fields'
15
16
  - Support of '/lists/<id>/signup-forms'
16
17
  - `.count` support
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MailchimpAPI::CollectionParsers
4
+ class SegmentMember < Base
5
+ def element_key
6
+ 'members'
7
+ end
8
+ end
9
+ end
@@ -6,4 +6,10 @@ module MailchimpAPI
6
6
  super
7
7
  end
8
8
  end
9
+
10
+ class InvalidOperation < StandardError
11
+ def initialize(msg = 'The requested operation is not valid')
12
+ super
13
+ end
14
+ end
9
15
  end
@@ -12,5 +12,6 @@ module MailchimpAPI
12
12
  has_many :members, class_name: 'MailchimpAPI::Member'
13
13
  has_many :merge_fields, class_name: 'MailchimpAPI::MergeField'
14
14
  has_many :signup_forms, class_name: 'MailchimpAPI::SignupForm'
15
+ has_many :segments, class_name: 'MailchimpAPI::Segment'
15
16
  end
16
17
  end
@@ -40,5 +40,13 @@ module MailchimpAPI
40
40
  connection.post path, nil, self.class.headers
41
41
  end
42
42
  end
43
+
44
+ # Tags should be provided as an array of the form [{name: 'tag1', status: 'active'}, {name: 'tag2', status: 'inactive'}]
45
+ def update_tags(tags)
46
+ path = element_path(prefix_options) + '/tags'
47
+ body = { tags: tags }.to_json
48
+
49
+ connection.post path, body, self.class.headers
50
+ end
43
51
  end
44
52
  end
@@ -9,5 +9,15 @@ module MailchimpAPI
9
9
  self.collection_parser = CollectionParsers::Segment
10
10
 
11
11
  self.prefix = '/3.0/lists/:list_id/'
12
+
13
+ # The path to get segment members is '/3.0/lists/:list_id/segments/:segment_id/members'
14
+ # Unfortunately, ActiveResource does not support nested resources, only single parent resources:
15
+ #
16
+ # https://github.com/rails/activeresource/blob/4accda8bc03ceae0ad626f8cec0b4751e89a58ad/lib/active_resource/associations.rb#L151
17
+ #
18
+ # Using a has_many, there is no way to include the `list_id`, so we just create our own members method.
19
+ def members(params = {})
20
+ @members ||= MailchimpAPI::SegmentMember.find(:all, params: { segment_id: id }.deep_merge(prefix_options).deep_merge(params))
21
+ end
12
22
  end
13
23
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MailchimpAPI
4
+ class SegmentMember < Base
5
+ extend MailchimpAPI::Support::Countable
6
+
7
+ self.collection_parser = CollectionParsers::SegmentMember
8
+ self.element_name = 'member'
9
+ self.collection_name = 'members'
10
+
11
+ self.prefix = '/3.0/lists/:list_id/segments/:segment_id/'
12
+
13
+ def update
14
+ raise MailchimpAPI::InvalidOperation.new 'Cannot update SegmentMember. Please use POST to add to a Segment, or DELETE to remove from a Segment.'
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MailchimpAPI
4
- VERSION = '1.0.0.pre.10'
4
+ VERSION = '1.0.0.pre.11'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailchimp_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.10
4
+ version: 1.0.0.pre.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - rewind.io
@@ -186,6 +186,7 @@ files:
186
186
  - lib/mailchimp_api/collection_parsers/merge_field.rb
187
187
  - lib/mailchimp_api/collection_parsers/note.rb
188
188
  - lib/mailchimp_api/collection_parsers/segment.rb
189
+ - lib/mailchimp_api/collection_parsers/segment_member.rb
189
190
  - lib/mailchimp_api/collection_parsers/signup_form.rb
190
191
  - lib/mailchimp_api/collection_parsers/tag.rb
191
192
  - lib/mailchimp_api/configuration.rb
@@ -204,6 +205,7 @@ files:
204
205
  - lib/mailchimp_api/resources/merge_field.rb
205
206
  - lib/mailchimp_api/resources/note.rb
206
207
  - lib/mailchimp_api/resources/segment.rb
208
+ - lib/mailchimp_api/resources/segment_member.rb
207
209
  - lib/mailchimp_api/resources/signup_form.rb
208
210
  - lib/mailchimp_api/resources/support/countable.rb
209
211
  - lib/mailchimp_api/resources/support/patch_update.rb