Class: Gold::SuspendOp

Inherits:
Object
  • Object
show all
Includes:
Outcomes
Defined in:
app/operations/gold/suspend_op.rb

Overview

Invoked when Helium suspends a merchant for violating ToS.

Constant Summary

Constants included from Outcomes

Outcomes::AcceptedCharge, Outcomes::AcceptedTerms, Outcomes::ActiveCharge, Outcomes::CannotApplyDiscount, Outcomes::CannotIssueCredit, Outcomes::CannotProcessCharge, Outcomes::CannotSelectTier, Outcomes::ChargeNeeded, Outcomes::ChargeNotNeeded, Outcomes::DeclinedCharge, Outcomes::DeclinedTerms, Outcomes::ExpiredCharge, Outcomes::FrozenCharge, Outcomes::MismatchCharge, Outcomes::MissingCharge, Outcomes::PendingCharge, Outcomes::SameDiscount, Outcomes::SameTier, Outcomes::TierApplied, Outcomes::TierNotFound, Outcomes::Uninstalled

Instance Method Summary collapse

Constructor Details

#initialize(billing) ⇒ SuspendOp

Returns a new instance of SuspendOp.



6
7
8
# File 'app/operations/gold/suspend_op.rb', line 6

def initialize(billing)
  @billing = billing
end

Instance Method Details

#callObject



10
11
12
13
14
15
16
17
18
19
# File 'app/operations/gold/suspend_op.rb', line 10

def call
  @billing.transition_to_or_stay_in!(:marked_as_suspended)

  # Communicate suspension to the merchant.
  BillingMailer.suspension(@billing).deliver_now

  @billing.transition_to!(:suspended)

  Success.new
end