Class: BackerObserver

Inherits:
ActiveRecord::Observer
  • Object
show all
Defined in:
app/observers/backer_observer.rb

Instance Method Summary collapse

Instance Method Details

#after_create(backer) ⇒ Object



4
5
6
7
# File 'app/observers/backer_observer.rb', line 4

def after_create(backer)
  backer.define_key
  backer.define_payment_method
end

#after_save(backer) ⇒ Object



40
41
42
43
44
45
# File 'app/observers/backer_observer.rb', line 40

def after_save(backer)
  Notification.create_notification_once(:project_success,
    backer.project.user,
    {project_id: backer.project.id},
    project: backer.project) if backer.project.reached_goal?
end

#before_save(backer) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/observers/backer_observer.rb', line 9

def before_save(backer)
  Notification.create_notification_once(:payment_slip,
    backer.user,
    {backer_id: backer.id},
    backer: backer,
    project_name: backer.project.name) if backer.payment_choice_was.nil? && backer.payment_choice == 'BoletoBancario'

  if backer.confirmed? and backer.confirmed_at.nil?
    backer.confirmed_at = Time.now
    Notification.create_notification_once(:confirm_backer,
      backer.user,
      {backer_id: backer.id},
      backer: backer,
      project_name: backer.project.name)

    Notification.create_notification_once(:project_owner_backer_confirmed,
      backer.project.user,
      {backer_id: backer.id},
      backer: backer,
      project_name: backer.project.name)

    if (Time.now > backer.project.expires_at  + 7.days) && (user = User.where(email: ::Configuration[:email_payments]).first)
      Notification.create_notification_once(:backer_confirmed_after_project_was_closed,
        user,
        {backer_id: backer.id},
        backer: backer,
        project_name: backer.project.name)
    end
  end
end

#notify_backoffice(backer) ⇒ Object



47
48
49
# File 'app/observers/backer_observer.rb', line 47

def notify_backoffice(backer)
  CreditsMailer.request_refund_from(backer).deliver
end

#notify_backoffice_about_canceled(backer) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'app/observers/backer_observer.rb', line 51

def notify_backoffice_about_canceled(backer)
  user = User.where(email: Configuration[:email_payments]).first
  if user.present?
    Notification.create_notification_once(:backer_canceled_after_confirmed,
      user,
      {backer_id: backer.id},
      backer: backer)
  end
end