effective_messaging 0.5.0 → 0.5.2

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: dedeb21248c1deac281cc473a00f64e23fc41c74ccff84cde9cb8cad9f3295c9
4
- data.tar.gz: 6b102bd482f7b03b62f1caaff60a406fd561439316d7a26c5c1839428b161c7d
3
+ metadata.gz: 03bcd735271fc2657ea29f9c59b80324d5f869b03b289cdbf3b636204a4c956a
4
+ data.tar.gz: a6926fb92f8c972c9845489c303d341afbad242e2257b22a6ea061235c1008aa
5
5
  SHA512:
6
- metadata.gz: 8726856fc8632e2c7159ff98ca1b97098eee126dcaa5a29ae87905759769f8613ec02a1c711a8233fd236c1fecf8bfd3a75d638a87dea2c74903c6b5187bff78
7
- data.tar.gz: f890bac4407411221c371fbcdcfd3e545db95b37ff078a782376b1d3e562debd15a622b3996a04b30422927488fe7157abc18c0ad9ef173b47f8a083f4efd792
6
+ metadata.gz: c7c5a32af19ce69eda8fbf80150a48076b2de2f83bc80ae92ed74f7a3709a70e7b370c19d1667b87a20dee19872de23606df729beda5b3bd322bd605bee23945
7
+ data.tar.gz: 57c0cc0d79891b0bef5edd279be885de659d7c541c552aff9cbfe58a2ed2480e8601eb8c32f3a78f2d868a9d4a1d058f8684e21cd61cc9f14320034c779186c1
@@ -17,7 +17,10 @@ module Effective
17
17
  headers = headers_for(notification, opts)
18
18
 
19
19
  # Use postmark broadcast-stream
20
- headers.merge!(message_stream: 'broadcast-stream') if defined?(Postmark)
20
+ if defined?(Postmark)
21
+ headers.merge!(message_stream: 'broadcast-stream')
22
+ attach_unsubscribe_link!(rendered)
23
+ end
21
24
 
22
25
  # Calls effective_resources subject proc, so we can prepend [LETTERS]
23
26
  subject = subject_for(__method__, rendered.fetch(:subject), notification, opts)
@@ -39,7 +42,10 @@ module Effective
39
42
  headers = headers_for(notification, opts)
40
43
 
41
44
  # Use postmark broadcast-stream
42
- headers.merge!(message_stream: 'broadcast-stream') if defined?(Postmark)
45
+ if defined?(Postmark)
46
+ headers.merge!(message_stream: 'broadcast-stream')
47
+ attach_unsubscribe_link!(rendered)
48
+ end
43
49
 
44
50
  # Calls effective_resources subject proc, so we can prepend [LETTERS]
45
51
  subject = subject_for(__method__, rendered.fetch(:subject), resource, opts)
@@ -66,6 +72,25 @@ module Effective
66
72
  }
67
73
  end
68
74
 
75
+ def attach_unsubscribe_link!(rendered)
76
+ raise('expected a Hash') unless rendered.kind_of?(Hash)
77
+ raise('expected a Hash with a :body') unless rendered.key?(:body)
78
+
79
+ name = EffectiveResources.et('acronym')
80
+ url = view_context.root_url
81
+
82
+ unsubscribe = [
83
+ "You received this message because of your affiliation with the #{name} at #{url}.",
84
+ "If you do not want to receive this messages any more, you may <a href=\"{{{ pm:unsubscribe }}}\">Unsubscribe from this list</a>.",
85
+ "Please understand that unsubscribing means you will no longer receive mandatory messages and announcements."
86
+ ].join(" ")
87
+
88
+ # Attach unsubscribe link
89
+ rendered[:body] = "#{rendered[:body]}\r\n\r\n<hr><small>#{unsubscribe}</small>"
90
+
91
+ rendered
92
+ end
93
+
69
94
  def mailer_settings
70
95
  EffectiveMessaging
71
96
  end
@@ -224,6 +224,14 @@ module Effective
224
224
  report.collection().select { |resource| notifiable_tomorrow?(resource) }.count if report
225
225
  end
226
226
 
227
+ def enable!
228
+ update!(enabled: true)
229
+ end
230
+
231
+ def disable!
232
+ update!(enabled: false)
233
+ end
234
+
227
235
  # Enqueues this notification to send right away.
228
236
  # Only applies to scheduled_email? notifications
229
237
  def send_now!
data/config/routes.rb CHANGED
@@ -15,6 +15,9 @@ EffectiveMessaging::Engine.routes.draw do
15
15
  resources :chat_messages, only: [:index, :show, :destroy]
16
16
 
17
17
  resources :notifications do
18
+ post :enable, on: :member
19
+ post :disable, on: :member
20
+
18
21
  post :send_now, on: :member
19
22
  post :skip_once, on: :member
20
23
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveMessaging
2
- VERSION = '0.5.0'.freeze
2
+ VERSION = '0.5.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_messaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
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-08-27 00:00:00.000000000 Z
11
+ date: 2023-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails