effective_mailchimp 0.2.1 → 0.2.3

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: b36ddeb033917790b43fbe0d21fee076f284c4d1d397a4bc18b2ff6135d014aa
4
- data.tar.gz: 7d2ac0accd18fc0b1b5756b6a548329465f3d6661540a668d929f762efdbd6e3
3
+ metadata.gz: f5e966f558a31774e2f2f1abc592ff6ebffa82a3efabe6aaad788e1542f17dec
4
+ data.tar.gz: 989488ef3d77922963d03875421008c25a1b81f0013b008d82ebfc78d894b554
5
5
  SHA512:
6
- metadata.gz: b0e524dbc00a33d316d1465bbc3f94ba0d79864d1693ac81dc57ecc1f60bb9af627540e33021d6a061a12f99014dbb3993ccb80fa1e6786157cb29080dcdea5a
7
- data.tar.gz: 2ae3e23a1662c440fef0d75a758a840242c8b4d758ec28f122ae7fbee38a2f03527ca14a46b8470662a033b36df9cfca88141dc71d1546ecc63e4ae427d52b1c
6
+ metadata.gz: 11b18d328c459a1ee781a005ac806fb27336a4105cf169abe09958347d04b7f9b5ab11ec8a2d2e05facb6f5c6759afedb3e05e8e55a2184bc1b89f628ab75663
7
+ data.tar.gz: 3594f9d6d2289be321208181b40cec8602f76d4d63e665e435749c68f3d962221dcbaca355550027f762b1c6d96fa18358584f4a4eaad7699e8da81d2c6c5d0f
@@ -35,6 +35,7 @@ module EffectiveMailchimpUser
35
35
  end
36
36
 
37
37
  # These are the fields we push to Mailchimp on list_add and list_update
38
+ # Keys can only be 10 characters long
38
39
  def default_mailchimp_merge_fields
39
40
  atts = {}
40
41
 
@@ -54,7 +55,7 @@ module EffectiveMailchimpUser
54
55
  'CITY': address&.city,
55
56
  'PROVINCE': address&.province,
56
57
  'COUNTRY': address&.country,
57
- 'POSTAL_CODE': address&.postal_code
58
+ 'POSTALCODE': address&.postal_code
58
59
  )
59
60
  end
60
61
 
@@ -56,6 +56,8 @@ module Effective
56
56
  end
57
57
 
58
58
  def add_merge_field(id, name:, type: :text)
59
+ raise("invalid mailchimp merge key: #{name}. Must be 10 or fewer characters") if name.to_s.length > 10
60
+
59
61
  payload = { name: name.to_s.titleize, tag: name.to_s, type: type }
60
62
 
61
63
  begin
@@ -74,7 +76,7 @@ module Effective
74
76
  payload = {
75
77
  email_address: member.user.email,
76
78
  status: (member.subscribed ? 'subscribed' : 'unsubscribed'),
77
- merge_fields: merge_fields
79
+ merge_fields: merge_fields.delete_if { |k, v| v.blank? }
78
80
  }
79
81
 
80
82
  client.lists.add_list_member(member.mailchimp_list.mailchimp_id, payload)
@@ -89,7 +91,7 @@ module Effective
89
91
  payload = {
90
92
  email_address: member.user.email,
91
93
  status: (member.subscribed ? 'subscribed' : 'unsubscribed'),
92
- merge_fields: merge_fields.compact
94
+ merge_fields: merge_fields.delete_if { |k, v| v.blank? }
93
95
  }
94
96
 
95
97
  client.lists.update_list_member(member.mailchimp_list.mailchimp_id, member.email, payload)
@@ -1,3 +1,3 @@
1
1
  module EffectiveMailchimp
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.3'.freeze
3
3
  end
@@ -5,4 +5,20 @@ namespace :effective_mailchimp do
5
5
  load "#{__dir__}/../../db/seeds.rb"
6
6
  end
7
7
 
8
+ # bundle exec rake effective_mailchimp:create_mailchimp_merge_fields
9
+ task create_mailchimp_merge_fields: :environment do
10
+ merge_fields = User.new.mailchimp_merge_fields()
11
+
12
+ Effective::MailchimpList.sync!
13
+
14
+ collection = Effective::MailchimpList.all
15
+
16
+ collection.find_each do |list|
17
+ puts "Creating #{list} merge fields"
18
+ list.create_mailchimp_merge_fields!(merge_fields)
19
+ end
20
+
21
+ puts 'All done'
22
+ end
23
+
8
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_mailchimp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-17 00:00:00.000000000 Z
11
+ date: 2023-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails