Sha256: 09c6e6434fdf65383873a701df4b69f37b998d48b07b90cd97e15a753aaf733a

Contents?: true

Size: 1.34 KB

Versions: 13

Compression:

Stored size: 1.34 KB

Contents

module Spree
  class Recurring < ActiveRecord::Base
    class StripeRecurring < Spree::Recurring
      module ApiHandler 
        module PlanApiHandler
          def create_plan(plan)
            raise_invalid_object_error(plan, Spree::Plan)
            Stripe::Plan.create(
              amount: stripe_amount(plan.amount),
              interval: plan.interval,
              interval_count: plan.interval_count,
              name: plan.name,
              currency: plan.currency,
              id: plan.api_plan_id,
              trial_period_days: plan.trial_period_days
            )
          end

          def delete_plan(plan)
            raise_invalid_object_error(plan, Spree::Plan)
            stripe_plan = retrieve_api_plan(plan)
            stripe_plan.delete
          end

          def update_plan(plan)
            raise_invalid_object_error(plan, Spree::Plan)
            stripe_plan = retrieve_api_plan(plan)
            stripe_plan.name = plan.name
            stripe_plan.save
          end

          def set_api_plan_id(plan)
            plan.api_plan_id = "KS-Plan-#{Time.current.to_i}"
          end

          private

          def retrieve_api_plan(plan)
            Stripe::Plan.retrieve(plan.api_plan_id)
          end

          def stripe_amount(amount)
            (amount * 100).to_i
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
spree_account_recurring-1.1.5 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.0.7 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.1.4 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.0.6 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.0.5 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.1.3 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.1.2 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.0.4 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.0.3 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.0.2 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.1.1 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.1.0 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb
spree_account_recurring-1.0.1 app/models/concerns/spree/recurring/stripe_recurring/api_handler/plan_api_handler.rb