Class: Payola::CreatePlan

Inherits:
Object
  • Object
show all
Defined in:
app/services/payola/create_plan.rb

Class Method Summary collapse

Class Method Details

.call(plan) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/services/payola/create_plan.rb', line 3

def self.call(plan)
  secret_key = Payola.secret_key_for_sale(plan)

  begin
    return Stripe::Plan.retrieve(plan.stripe_id, secret_key)
  rescue Stripe::InvalidRequestError
    # fall through
  end

  Stripe::Plan.create({
    id:                plan.stripe_id,
    amount:            plan.amount,
    interval:          plan.interval,
    name:              plan.name,
    interval_count:    plan.respond_to?(:interval_count) ? plan.interval_count : nil,
    currency:          plan.respond_to?(:currency) ? plan.currency : Payola.default_currency,
    trial_period_days: plan.respond_to?(:trial_period_days) ? plan.trial_period_days : nil
  }, secret_key)
end