Sha256: d2b5ec9d11223b4588a39e818d8e15937197bee8f2e37f8716a4a462fdcd1942
Contents?: true
Size: 992 Bytes
Versions: 1
Compression:
Stored size: 992 Bytes
Contents
module Catarse module Credits class Refund attr_accessor :backer, :user, :message def initialize(backer, user) @backer = backer @user = user end def make_request! check_refunded check_requested check_total_of_credits check_can_refund @backer.update_attributes({ requested_refund: true }) @backer.user.save CreditsMailer.request_refund_from(@backer).deliver @message = I18n.t('credits.index.refunded') end private def check_requested raise I18n.t('credits.refund.requested_refund') if @backer.requested_refund end def check_refunded raise I18n.t('credits.refund.refunded') if @backer.refunded end def check_total_of_credits unless @backer.user.credits >= @backer.value raise I18n.t('credits.refund.no_credits') end end def check_can_refund raise I18n.t('credits.refund.cannot_refund') unless @backer.can_refund? end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
catarse_core-1.0.0.beta | app/business/catarse/credits/refund.rb |