effective_postmark 0.2.0 → 0.3.1

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: 4fe7f11d545296d6955abe9f0c934d791f64ebfae9fa6c648715b8e9b27e836b
4
- data.tar.gz: a33fd5b23fbcb58730245be5201a8c1d965219f0e7c75116e79b0bdde57398a4
3
+ metadata.gz: 126e1abadb41cf5b943b35e7a7a6203be5481fc8bfe715d94a2ca5cc1bb7fe0a
4
+ data.tar.gz: 25d9e3cdd21979fe4a6af8af79fd96ec1c58840826daebf896053441d8bf2362
5
5
  SHA512:
6
- metadata.gz: 7a25ef0fe93ca7217e03370437f062254212db1f1eec2837b295e758ba045e4bc2c92429671646900d426d066c6c65e12d4ec029d7ef3433e8c3be21d7fa9259
7
- data.tar.gz: '0768ffeb2fb7b3f6f41d981418ce3206c6dcc63e827ab2f5f4e825c784427f9ec5adac8fa6528aaa7bad2066cbb3e688a4f204244c80a54096d235dc234d0975'
6
+ metadata.gz: b0c5e4484613c33b2fb060cb9badb82189f522980cc395d13e61ca2b1b58cec236920e4d9ab970d0f852f40a231b2e621a26201a5f57c1644c43131c2d27fa1f
7
+ data.tar.gz: fafd13bb0561f814dbba82552ecf169065407bb9968ea3cffc9d1ba6ad24b76ea92ce50cd071f4e7dc211050ddeaddb2a6776184e58ab52f9aca697564c5c927
data/README.md CHANGED
@@ -38,8 +38,8 @@ And add two database fields to your user model:
38
38
  ```ruby
39
39
  class AddEffectivePostmarkFieldsToUsers < ActiveRecord::Migration[7.0]
40
40
  def change
41
- add_column :users, :postmark_error, :string
42
- add_column :users, :postmark_error_at, :datetime
41
+ add_column :users, :email_delivery_error, :string
42
+ add_column :users, :email_delivery_error_at, :datetime
43
43
  end
44
44
  end
45
45
  ```
@@ -73,9 +73,9 @@ If you want to include the inactive alert on the devise reset password page:
73
73
  ```ruby
74
74
  class Users::PasswordsController < Devise::PasswordsController
75
75
  after_action(only: :create) do
76
- if resource.try(:postmark_invalid?)
76
+ if resource.email_delivery_error.present?
77
77
  flash.delete(:notice)
78
- flash[:danger] = view_context.effective_postmark_alert(resource, from: 'MyARTA', html_class: '')
78
+ flash[:danger] = view_context.effective_postmark_alert(resource, from: 'My Site', html_class: '')
79
79
  end
80
80
  end
81
81
  end
@@ -86,7 +86,7 @@ end
86
86
  Add a link to the admin report:
87
87
 
88
88
  ```ruby
89
- = nav_link_to 'Inactive Recipients', effective_postmark.inactive_recipients_admin_postmark_reports_path
89
+ = nav_link_to 'Email Delivery Errors', effective_postmark.email_delivery_errors_admin_postmark_reports_path
90
90
  ```
91
91
 
92
92
  ### Permissions
@@ -95,8 +95,8 @@ Give the following permissions to your admin user:
95
95
 
96
96
  ```ruby
97
97
  can :admin, :effective_postmark
98
- can(:postmark_reactivate, User) { |user| user.postmark_invalid? }
99
- can(:index, Admin::ReportInactiveRecipientsDatatable)
98
+ can(:postmark_reactivate, User) { |user| user.email_delivery_error.present? }
99
+ can(:index, Admin::ReportEmailDeliveryErrorsDatatable)
100
100
  ```
101
101
 
102
102
  ## License
@@ -5,8 +5,8 @@ module Admin
5
5
 
6
6
  include Effective::CrudController
7
7
 
8
- def inactive_recipients
9
- @datatable = Admin::ReportInactiveRecipientsDatatable.new
8
+ def email_delivery_errors
9
+ @datatable = Admin::ReportEmailDeliveryErrorsDatatable.new
10
10
  @page_title = @datatable.datatable_name
11
11
 
12
12
  authorize! :index, @datatable
@@ -1,7 +1,6 @@
1
1
  # Postmark: Inactive Recipients
2
-
3
2
  module Admin
4
- class ReportInactiveRecipientsDatatable < Effective::Datatable
3
+ class ReportEmailDeliveryErrorsDatatable < Effective::Datatable
5
4
  datatable do
6
5
  col :id, visible: false
7
6
 
@@ -16,8 +15,8 @@ module Admin
16
15
  col :first_name, visible: false
17
16
  col :last_name, visible: false
18
17
 
19
- col :postmark_error
20
- col :postmark_error_at
18
+ col :email_delivery_error
19
+ col :email_delivery_error_at
21
20
 
22
21
  actions_col(actions: []) do |user|
23
22
  dropdown_link_to('Reactivate', effective_postmark.postmark_reactivate_admin_postmark_path(user), remote: true, method: :post)
@@ -26,7 +25,7 @@ module Admin
26
25
  end
27
26
 
28
27
  collection do
29
- current_user.class.postmark_inactive_recipients
28
+ current_user.class.with_email_delivery_errors
30
29
  end
31
30
  end
32
31
  end
@@ -3,7 +3,7 @@ module EffectivePostmarkHelper
3
3
  # For use on the regular user alerts and forgot password pages
4
4
  def effective_postmark_alert(user, from: nil, html_class: 'alert alert-danger mb-4')
5
5
  raise('expected an effective_postmark_user') unless user.class.try(:effective_postmark_user?)
6
- return unless user.postmark_invalid?
6
+ return unless user.email_delivery_error.present?
7
7
 
8
8
  content_tag(:div, class: html_class) do
9
9
  [
@@ -21,7 +21,7 @@ module EffectivePostmarkHelper
21
21
  # For use on the admin/users#edit page
22
22
  def effective_postmark_admin_alert(user, from: nil, html_class: 'alert alert-danger mb-4')
23
23
  raise('expected an effective_postmark_user') unless user.class.try(:effective_postmark_user?)
24
- return unless user.postmark_invalid?
24
+ return unless user.email_delivery_error.present?
25
25
 
26
26
  content_tag(:div, class: html_class) do
27
27
  [
@@ -9,7 +9,7 @@ module EffectivePostmarkMailer
9
9
  end
10
10
  end
11
11
 
12
- rescue_from(::StandardError, with: :effective_postmark_error) unless Rails.env.test? || Rails.env.development?
12
+ #rescue_from(::StandardError, with: :effective_postmark_error)
13
13
  rescue_from(::Postmark::InactiveRecipientError, with: :effective_postmark_inactive_recipient_error)
14
14
  end
15
15
 
@@ -59,6 +59,11 @@ module EffectivePostmarkMailer
59
59
  Rails.logger.info "\e[31m\e[1mEMAIL FAILED\e[0m\e[22m" # bold red
60
60
  Rails.logger.info "#{exception.inspect}"
61
61
 
62
+ EffectiveLogger.error(exception.message) if defined?(EffectiveLogger)
63
+ ExceptionNotifier.notify_exception(exception) if defined?(ExceptionNotifier)
64
+
65
+ raise(exception) if Rails.env.test? || Rails.env.development?
66
+
62
67
  true
63
68
  end
64
69
 
@@ -15,15 +15,16 @@ module EffectivePostmarkUser
15
15
 
16
16
  included do
17
17
  effective_resource do
18
- postmark_error :string
19
- postmark_error_at :datetime
18
+ email_delivery_error :string
19
+ email_delivery_error_at :datetime
20
20
  end
21
21
 
22
- before_validation(if: -> { email_changed? && postmark_invalid? }) do
23
- assign_attributes(postmark_error: nil, postmark_error_at: nil)
22
+ # Clear any email errors if they change their email
23
+ before_validation(if: -> { email_changed? && email_delivery_error.present? }) do
24
+ assign_attributes(email_delivery_error: nil, email_delivery_error_at: nil)
24
25
  end
25
26
 
26
- scope :postmark_inactive_recipients, -> { where.not(postmark_error_at: nil) }
27
+ scope :with_email_delivery_errors, -> { where.not(email_delivery_error: nil) }
27
28
  end
28
29
 
29
30
  module ClassMethods
@@ -32,9 +33,9 @@ module EffectivePostmarkUser
32
33
 
33
34
  # Triggered by the EffectivePostmarkMailer concern when a Postmark::InactiveRecipientError is raised
34
35
  def postmark_inactive_recipient!
35
- return unless postmark_valid? # If we already marked invalid, don't mark again
36
+ return if email_delivery_error.present? # If we already marked invalid, don't mark again
36
37
 
37
- update_columns(postmark_error: 'Inactive Recipient', postmark_error_at: Time.zone.now)
38
+ update_columns(email_delivery_error: 'Inactive Recipient', email_delivery_error_at: Time.zone.now)
38
39
  end
39
40
 
40
41
  # Triggered by an admin to reactivate the email address
@@ -48,15 +49,7 @@ module EffectivePostmarkUser
48
49
  return false if message.kind_of?(Exception)
49
50
 
50
51
  # This worked. We've been reactivated. Clear the error
51
- update_columns(postmark_error: nil, postmark_error_at: nil)
52
- end
53
-
54
- def postmark_valid?
55
- postmark_error.blank?
56
- end
57
-
58
- def postmark_invalid?
59
- postmark_error.present?
52
+ update_columns(email_delivery_error: nil, email_delivery_error_at: nil)
60
53
  end
61
54
 
62
55
  end
@@ -4,5 +4,5 @@ en:
4
4
  acronym: 'Postmark'
5
5
 
6
6
  datatables:
7
- admin/report_inactive_recipients_datatable: 'Report: Inactive Recipients'
7
+ admin/report_email_delivery_errors_datatable: 'Report: Email Delivery Errors'
8
8
 
data/config/routes.rb CHANGED
@@ -6,7 +6,7 @@ EffectivePostmark::Engine.routes.draw do
6
6
 
7
7
  resources :postmark_reports, only: [] do
8
8
  collection do
9
- get :inactive_recipients
9
+ get :email_delivery_errors
10
10
  end
11
11
  end
12
12
  end
@@ -1,3 +1,3 @@
1
1
  module EffectivePostmark
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.3.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_postmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
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-09-16 00:00:00.000000000 Z
11
+ date: 2024-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -218,7 +218,7 @@ files:
218
218
  - README.md
219
219
  - app/controllers/admin/postmark_controller.rb
220
220
  - app/controllers/admin/postmark_reports_controller.rb
221
- - app/datatables/admin/report_inactive_recipients_datatable.rb
221
+ - app/datatables/admin/report_email_delivery_errors_datatable.rb
222
222
  - app/helpers/effective_postmark_helper.rb
223
223
  - app/mailers/concerns/effective_postmark_mailer.rb
224
224
  - app/mailers/effective/postmark_mailer.rb