delivery_uncle 0.1.2 → 0.1.3

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
  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