delivery_uncle 0.1.2 → 0.1.3

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
  SHA1:
3
- metadata.gz: c82ca7fd6f9519d2be47f9a80ebc224ddaaee316
4
- data.tar.gz: 567fa4e2d40269dd757215fe540ed4a7f624735c
3
+ metadata.gz: de5ee577c5e27a5af7c6a23a18bd0a4e40db2638
4
+ data.tar.gz: 7dee24ce6cd17303ee5ed398d0125671ff2c11a8
5
5
  SHA512:
6
- metadata.gz: fdbc42aeff0635ddcc6400a82f6cfa8767cc7cd251d4a30bd5f1f6327c1620cac42af7053c9327acb1bef8fff5c9335acc7c880decef4e236548ff8e70134350
7
- data.tar.gz: 0a477d7668f1714688f562f61845de9287216a65314ef4956eb4d95333a2a7cd5fbe946cdffb30a0581801c32cce02eb6b0cd814e2f86596180aff09625153e7
6
+ metadata.gz: ebec7c672e690d0a8d30e7aa37186bbe710875e12247bd105d0491eb4229abad452f6145f77cdf24c6f320f4552043297b1842ee31f82c47f9f51d07ef39cc38
7
+ data.tar.gz: e31cf2883a0ea33e94dd5de9548870a4eb924333370bb870944502e4a65a3b588e7843e7a20aafe1755729eec8e357e44411ece8febcf4aa6484e2cdda74c578
@@ -5,7 +5,7 @@ module DeliveryUncle
5
5
  scope :with_mailer_method, ->(mailer, mailer_method) { where(mailer: mailer, mailer_method: mailer_method) }
6
6
 
7
7
  def mail
8
- ::Mail.new(mail_body)
8
+ @mail ||= ::Mail.new(mail_body)
9
9
  end
10
10
 
11
11
  def paused?
@@ -16,6 +16,10 @@ module DeliveryUncle
16
16
  status == :sent || status == 'sent'
17
17
  end
18
18
 
19
+ def save_status!(status)
20
+ update_attribute(:status,status)
21
+ end
22
+
19
23
  def self.mailers
20
24
  group(:mailer).order('mailer ASC').map(&:mailer)
21
25
  end
@@ -4,53 +4,51 @@ module DeliveryUncle
4
4
  def queue(request)
5
5
  return if not_allowed?(request)
6
6
 
7
- save_status(request, :enqueue)
8
7
  QueueRequest.new(request)
9
- save_status(request, :queued)
10
8
  end
11
9
 
12
10
  def pause(request)
13
11
  return if not_allowed?(request)
14
12
 
15
- save_status(request, :paused)
13
+ request.save_status!(:paused)
16
14
  end
17
15
 
18
16
  def retry(request)
19
17
  return if not_allowed?(request)
20
18
 
21
- save_status(request, :retrying)
22
19
  RetryRequest.new(request)
23
- save_status(request, :queued)
24
20
  end
25
21
 
26
22
  def not_allowed?(request)
27
23
  return true if request.blank? || request.sent?
28
24
 
29
25
  if Activity.blocked_mailers.include?(request.mailer)
30
- save_status(request, :blocked)
26
+ request.save_status!(:blocked)
31
27
  return true
32
28
  end
33
29
 
34
30
  return false
35
31
  end
36
-
37
- private
38
- def save_status(request, status)
39
- request.status = status
40
- request.save
41
- end
42
32
  end
43
33
  extend ClassMethods
44
34
 
45
35
  protected
46
36
  class QueueRequest
47
37
  def initialize(request)
48
- Resque.enqueue(DeliveryUncle::SendEmailRequest, request.id)
38
+ request.save_status!(:enqueue)
39
+ begin
40
+ Resque.enqueue(DeliveryUncle::SendEmailRequest, request.id)
41
+ rescue => e
42
+ Rails.logger.error e.message
43
+ Rails.logger.error e.backtrace.join("\n")
44
+ request.save_status!(:error_on_enqueue)
45
+ end
49
46
  end
50
47
  end
51
48
 
52
49
  class RetryRequest
53
50
  def initialize(request)
51
+ request.save_status!(:retrying)
54
52
  QueueRequest.new(request)
55
53
  end
56
54
  end
@@ -6,24 +6,18 @@ module DeliveryUncle
6
6
  request = DeliveryUncle::EmailRequest.find(request_id)
7
7
 
8
8
  return if request.paused? || EmailQueue.not_allowed?(request)
9
- change_status(request, :processing)
10
-
11
- @queue = "delivery_uncle:#{request.mail_type}" if request.mail_type
9
+ request.save_status!(:processing)
12
10
 
13
11
  begin
14
12
  mail = request.mail
15
13
  method = ActionMailer::Base.delivery_method
16
14
  mail.delivery_method method, ActionMailer::Base.send(:"#{method}_settings")
17
15
  mail.deliver
18
- change_status(request, :sent)
19
- rescue
20
- change_status(request, :error_when_deliver)
16
+ request.save_status!(:sent)
17
+ rescue => e
18
+ request.save_status!(:error_when_deliver)
19
+ raise e
21
20
  end
22
21
  end
23
-
24
- def self.change_status(request, status)
25
- request.status = status
26
- request.save
27
- end
28
22
  end
29
23
  end
@@ -1,3 +1,3 @@
1
1
  module DeliveryUncle
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end