Sha256: 53e1d1ff9a29068610deff200b4e70d6cdad12b93785c087d2d883d3353df3a0

Contents?: true

Size: 1.16 KB

Versions: 12

Compression:

Stored size: 1.16 KB

Contents

module Ticket::SaleTransitions
  extend ActiveSupport::Concern

  def take_off_sale
    begin
      off_sale!
    rescue Transitions::InvalidTransition
      return false
    end
  end

  def put_on_sale
    begin
      on_sale!
    rescue Transitions::InvalidTransition
      return false
    end
  end

  module ClassMethods
    def take_off_sale(tickets)
      return false if tickets.blank?
      attempt_transition(tickets, :off_sale) do
        Ticket.update_all({ :state => :off_sale }, { :id => tickets.collect(&:id)})
      end
      Rails.logger.info ("Completed off saling!")
      tickets.first.show.refresh_stats
      Rails.logger.info ("Completed off sailing!")
    end

    def put_on_sale(tickets)
      return false if tickets.blank?
      attempt_transition(tickets, :on_sale) do
        Ticket.update_all({ :state => :on_sale }, { :id => tickets.collect(&:id)})
      end
      tickets.first.show.refresh_stats
    end

    def attempt_transition(tickets, state)
      begin
        tickets.map(&state)
        yield
      rescue Transitions::InvalidTransition
        logger.info "Trying to transition ticket [#{}] on_sale, transition failed"
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
artfully_ose-1.3.0.pre4 app/models/ticket/sale_transitions.rb
artfully_ose-1.3.0.pre3 app/models/ticket/sale_transitions.rb
artfully_ose-1.3.0.pre2 app/models/ticket/sale_transitions.rb
artfully_ose-1.3.0.pre1 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0.beta.1 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0.alpha.2 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0.alpha.1 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0.pre.27 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0.pre.26 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0.pre.24 app/models/ticket/sale_transitions.rb
artfully_ose-1.2.0.pre.23 app/models/ticket/sale_transitions.rb