effective_mailchimp 0.10.0 → 0.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97b4b38c36740c956c5a4451f76b467ea3847337782f7382775679fbc88c7328
4
- data.tar.gz: 1c0009621964610dc09e07eb05f10bf6449639abe67e1832b2c24502e13d6176
3
+ metadata.gz: 66bc41e595203956e8013eed736d6664071e4d127f4c9e6cbe7ddeffa8767ab8
4
+ data.tar.gz: 10b66d021fd0a4fad1f1fdf99a3262cae368a67f71d66846e9513496157eb5b7
5
5
  SHA512:
6
- metadata.gz: ab11764ba1468abb17b0a2538fe54358cb4a2b6685744a2e70e9967b14749856d5ef3dcfe1f75c86cdd2ffd71a4f6d5f45c4a29f36d7630bd0595bdce42f422c
7
- data.tar.gz: d7ec09359013c47fa3cab0dbdb846e628406ae5bfad9ed7d8f9d9d26da992d73cfb5a9a69e08d5d82cc156a60c4d56ac10df8577c3d334e070aa057863b6d9e6
6
+ metadata.gz: 9bbee49aacdc23722219b5070cc536b3175a137802d06e63528145f4d039db06250d39fddda39e6b8ed26195fd5e65fc0a19c77c279034bea139aa0eec20f738
7
+ data.tar.gz: 1ab7156edf277c617c2a2810bb97e5f33293727c0fa4f30d1be33f95e949641873c241890cabc10df4dbebdc936797cf0d187a8cd0f3bcbcd5f95d4b90559305
@@ -16,7 +16,7 @@ module EffectiveMailchimpUser
16
16
  def effective_mailchimp_user?; true; end
17
17
 
18
18
  def require_mailchimp_update_fields
19
- ['email', 'last_name', 'first_name']
19
+ ['id', 'email', 'last_name', 'first_name']
20
20
  end
21
21
  end
22
22
 
@@ -33,10 +33,14 @@ module EffectiveMailchimpUser
33
33
  includes(mailchimp_list_members: [:mailchimp_list])
34
34
  }
35
35
 
36
+ # A new user is created
37
+ after_commit(on: [:create], if: -> { EffectiveMailchimp.api_present? }, unless: -> { EffectiveMailchimp.supressed? || @mailchimp_member_update_enqueued }) do
38
+ mailchimp_subscribe_to_force_subscribe!
39
+ end
40
+
36
41
  # The user updated the form
37
- after_commit(if: -> { mailchimp_member_update_required? }, unless: -> { EffectiveMailchimp.supressed? || @mailchimp_member_update_enqueued }) do
38
- @mailchimp_member_update_enqueued = true
39
- EffectiveMailchimpUpdateJob.perform_later(self) # This calls user.mailchimp_update! on the background
42
+ after_commit(on: [:update], if: -> { mailchimp_member_update_required? }, unless: -> { EffectiveMailchimp.supressed? || @mailchimp_member_update_enqueued }) do
43
+ mailchimp_update_async!
40
44
  end
41
45
  end
42
46
 
@@ -257,6 +261,14 @@ module EffectiveMailchimpUser
257
261
  save!
258
262
  end
259
263
 
264
+ # Subscribe to force_subscribe lists
265
+ def mailchimp_subscribe_to_force_subscribe!
266
+ mailchimp_lists = Effective::MailchimpList.where(force_subscribe: true).to_a
267
+ return unless mailchimp_lists.present?
268
+
269
+ mailchimp_subscribe!(mailchimp_lists)
270
+ end
271
+
260
272
  private
261
273
 
262
274
  def mailchimp_with_retries(retries: 3, wait: 2, &block)
@@ -274,6 +286,8 @@ module EffectiveMailchimpUser
274
286
  end
275
287
 
276
288
  def mailchimp_member_update_required?
289
+ return false unless EffectiveMailchimp.api_present?
290
+
277
291
  return false unless mailchimp_user_form_action
278
292
  return false if self.class.respond_to?(:effective_memberships_user) && membership&.mailchimp_membership_update_required?
279
293
 
@@ -159,7 +159,7 @@ module Effective
159
159
  payload = {
160
160
  email_address: member.user.email,
161
161
  status: (member.subscribed ? 'subscribed' : 'unsubscribed'),
162
- merge_fields: merge_fields.delete_if { |k, v| v.blank? },
162
+ merge_fields: merge_fields.transform_values { |value| value || '' },
163
163
  interests: member.interests_hash.presence
164
164
  }.compact
165
165
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveMailchimp
2
- VERSION = '0.10.0'.freeze
2
+ VERSION = '0.11.0'.freeze
3
3
  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.10.0
4
+ version: 0.11.0
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: 2024-12-11 00:00:00.000000000 Z
11
+ date: 2024-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails