spree_emails 5.2.5 → 5.3.0.rc1

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: 39d689b749e937de6c06e5bf6d63d368add78cae15a86bd14ceef09e13356f13
4
- data.tar.gz: 8116048be9d2df4bbcc8bdc8b477963d48f08d81ab96caa5034765f7f3510b85
3
+ metadata.gz: 914cad00ec6db8dc1e48fe5893284799492a3e23c6398a3fc219882130751bbc
4
+ data.tar.gz: 96ca08387036fe07dbf84ec3fd123af49e610b011df8d1d1336be6c311f1484b
5
5
  SHA512:
6
- metadata.gz: b49442723d468a16813e9e560efa057a7a663419cf8c757135aee74a995da0e0f5e439b8bf573288040993315d8ab8ab65d45f848f9672d331f5f75f69da87e4
7
- data.tar.gz: b6dbfa36db3c67d93a7c3cc433091ed19123469d9e505c02a4928a3dd93077995d9feebd213da21255f5b34141be3007cd4d9677599a2ef77483e1d344fbf739
6
+ metadata.gz: 4338a16b2c8681ce2cfd0a55c5a22faa22837ddf5dba0ac1cce16a613138722c3455085264d43598040781e7305e5daf0d3ab8cbfb682ab6eb21e885c243020b
7
+ data.tar.gz: dd3fe763c52d4d79f90cd8629d0d6f758eff9cb4169a19acb4a0b759ada15f0262acf952fe193e22437088858652f7c8575133dd946e5e908d13dff149bf0a12
data/Rakefile CHANGED
@@ -11,5 +11,7 @@ task default: :spec
11
11
  desc "Generates a dummy app for testing"
12
12
  task :test_app do
13
13
  ENV['LIB_NAME'] = 'spree/emails'
14
- Rake::Task['common:test_app'].invoke
14
+ Rake::Task['common:test_app'].execute(
15
+ css: true
16
+ )
15
17
  end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ class OrderEmailSubscriber < Spree::Subscriber
5
+ subscribes_to 'order.completed', 'order.canceled', 'order.resend_confirmation_email'
6
+
7
+ on 'order.completed', :send_confirmation_email
8
+ on 'order.canceled', :send_cancel_email
9
+ on 'order.resend_confirmation_email', :resend_confirmation_email
10
+
11
+ private
12
+
13
+ def send_confirmation_email(event)
14
+ order = find_order(event)
15
+ return unless order
16
+ return if order.confirmation_delivered?
17
+
18
+ store = order.store
19
+ return unless store.prefers_send_consumer_transactional_emails?
20
+
21
+ OrderMailer.confirm_email(order.id).deliver_later
22
+ order.update_column(:confirmation_delivered, true)
23
+
24
+ send_store_owner_notification(order) if should_notify_store_owner?(order)
25
+ end
26
+
27
+ def resend_confirmation_email(event)
28
+ order = find_order(event)
29
+ return unless order
30
+
31
+ store = order.store
32
+ return unless store.prefers_send_consumer_transactional_emails?
33
+
34
+ OrderMailer.confirm_email(order.id).deliver_later
35
+ order.update_column(:confirmation_delivered, true)
36
+ end
37
+
38
+ def send_cancel_email(event)
39
+ order = find_order(event)
40
+ return unless order
41
+
42
+ OrderMailer.cancel_email(order.id).deliver_later
43
+ end
44
+
45
+ def send_store_owner_notification(order)
46
+ return if order.store_owner_notification_delivered?
47
+ return if order.store.new_order_notifications_email.blank?
48
+
49
+ OrderMailer.store_owner_notification_email(order.id).deliver_later
50
+ order.update_column(:store_owner_notification_delivered, true)
51
+ end
52
+
53
+ def should_notify_store_owner?(order)
54
+ order.store.new_order_notifications_email.present? &&
55
+ !order.store_owner_notification_delivered?
56
+ end
57
+
58
+ def find_order(event)
59
+ order_id = event.payload['id']
60
+ Spree::Order.find_by(id: order_id)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ class ReimbursementEmailSubscriber < Spree::Subscriber
5
+ subscribes_to 'reimbursement.reimbursed'
6
+
7
+ def handle(event)
8
+ reimbursement = find_reimbursement(event)
9
+ return unless reimbursement
10
+
11
+ store = reimbursement.store
12
+ return unless store.prefers_send_consumer_transactional_emails?
13
+
14
+ ReimbursementMailer.reimbursement_email(reimbursement.id).deliver_later
15
+ end
16
+
17
+ private
18
+
19
+ def find_reimbursement(event)
20
+ reimbursement_id = event.payload['id']
21
+ Spree::Reimbursement.find_by(id: reimbursement_id)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ class ShipmentEmailSubscriber < Spree::Subscriber
5
+ subscribes_to 'shipment.shipped'
6
+
7
+ def handle(event)
8
+ shipment = find_shipment(event)
9
+ return unless shipment
10
+
11
+ store = shipment.store
12
+ return unless store.prefers_send_consumer_transactional_emails?
13
+
14
+ ShipmentMailer.shipped_email(shipment.id).deliver_later
15
+ end
16
+
17
+ private
18
+
19
+ def find_shipment(event)
20
+ shipment_id = event.payload['id']
21
+ Spree::Shipment.find_by(id: shipment_id)
22
+ end
23
+ end
24
+ end
@@ -5,6 +5,18 @@ module Spree
5
5
  class Engine < Rails::Engine
6
6
  isolate_namespace Spree
7
7
  engine_name 'spree_emails'
8
+
9
+ # Add app/subscribers to autoload paths
10
+ config.paths.add 'app/subscribers', eager_load: true
11
+
12
+ # Add email event subscribers
13
+ config.after_initialize do
14
+ Spree.subscribers.concat [
15
+ Spree::OrderEmailSubscriber,
16
+ Spree::ShipmentEmailSubscriber,
17
+ Spree::ReimbursementEmailSubscriber
18
+ ]
19
+ end
8
20
  end
9
21
  end
10
22
  end
data/lib/spree/emails.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'spree/core'
1
+ require 'spree'
2
2
 
3
3
  module Spree
4
4
  module Emails
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_emails
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.5
4
+ version: 5.3.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -12,19 +12,19 @@ cert_chain: []
12
12
  date: 1980-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: spree_core
15
+ name: spree
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 5.2.5
20
+ version: 5.3.0.rc1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 5.2.5
27
+ version: 5.3.0.rc1
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: email_spec
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -61,9 +61,9 @@ files:
61
61
  - app/mailers/spree/reimbursement_mailer.rb
62
62
  - app/mailers/spree/shipment_mailer.rb
63
63
  - app/models/spree/newsletter_subscriber/emails.rb
64
- - app/models/spree/order/emails.rb
65
- - app/models/spree/reimbursement/emails.rb
66
- - app/models/spree/shipment/emails.rb
64
+ - app/subscribers/spree/order_email_subscriber.rb
65
+ - app/subscribers/spree/reimbursement_email_subscriber.rb
66
+ - app/subscribers/spree/shipment_email_subscriber.rb
67
67
  - app/views/spree/newsletter_mailer/email_confirmation.html.erb
68
68
  - app/views/spree/newsletter_mailer/email_confirmation.text.erb
69
69
  - app/views/spree/order_mailer/cancel_email.html.erb
@@ -99,9 +99,9 @@ licenses:
99
99
  - BSD-3-Clause
100
100
  metadata:
101
101
  bug_tracker_uri: https://github.com/spree/spree/issues
102
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.2.5
102
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.3.0.rc1
103
103
  documentation_uri: https://docs.spreecommerce.org/
104
- source_code_uri: https://github.com/spree/spree/tree/v5.2.5
104
+ source_code_uri: https://github.com/spree/spree/tree/v5.3.0.rc1
105
105
  rdoc_options: []
106
106
  require_paths:
107
107
  - lib
@@ -109,12 +109,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: '3.0'
112
+ version: '3.2'
113
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 1.8.23
117
+ version: '0'
118
118
  requirements: []
119
119
  rubygems_version: 4.0.2
120
120
  specification_version: 4
@@ -1,30 +0,0 @@
1
- module Spree
2
- class Order < Spree.base_class
3
- module Emails
4
- def deliver_order_confirmation_email
5
- if completed?
6
- OrderMailer.confirm_email(id).deliver_later if store.prefers_send_consumer_transactional_emails?
7
- update_column(:confirmation_delivered, true)
8
- else
9
- errors.add(:base, Spree.t(:order_email_resent_error))
10
- end
11
- end
12
-
13
- # Returns true if:
14
- # 1. an email address is set for new order notifications AND
15
- # 2. no notification for this order has been sent yet.
16
- def deliver_store_owner_order_notification_email?
17
- store.new_order_notifications_email.present? && !store_owner_notification_delivered?
18
- end
19
-
20
- def deliver_store_owner_order_notification_email
21
- OrderMailer.store_owner_notification_email(id).deliver_later
22
- update_column(:store_owner_notification_delivered, true)
23
- end
24
-
25
- def send_cancel_email
26
- OrderMailer.cancel_email(id).deliver_later
27
- end
28
- end
29
- end
30
- end
@@ -1,9 +0,0 @@
1
- module Spree
2
- class Reimbursement < Spree.base_class
3
- module Emails
4
- def send_reimbursement_email
5
- Spree::ReimbursementMailer.reimbursement_email(id).deliver_later if store.prefers_send_consumer_transactional_emails?
6
- end
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- module Spree
2
- class Shipment < Spree.base_class
3
- module Emails
4
- def send_shipped_email
5
- ShipmentMailer.shipped_email(@shipment.id).deliver_later if @shipment.store.prefers_send_consumer_transactional_emails?
6
- end
7
- end
8
- end
9
- end