Sha256: db26d3787573fb70bed71b4324860902580ac48061b82e4799194799dd9ac1fd

Contents?: true

Size: 1.49 KB

Versions: 1

Compression:

Stored size: 1.49 KB

Contents

module Catarse
class BackerObserver < ActiveRecord::Observer
  def after_create(backer)
    backer.define_key
    backer.define_payment_method
  end

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

    unless backer.user.have_address?
      backer.user.address_street = backer.address_street
      backer.user.address_number = backer.address_number
      backer.user.address_neighbourhood = backer.address_neighbourhood
      backer.user.address_zip_code = backer.address_zip_code
      backer.user.address_city = backer.address_city
      backer.user.address_state = backer.address_state
      backer.user.phone_number = backer.address_phone_number
    end

    unless backer.user.full_name.present?
      backer.user.full_name = backer.payer_name
    end

    backer.user.save
  end

  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

end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
catarse_core-1.0.0.beta app/observers/catarse/backer_observer.rb