Sha256: a198655e9c2581d6fcdf0f6216c9bf5df6b16630c8cbd1248af55fc176a9200b

Contents?: true

Size: 1013 Bytes

Versions: 2

Compression:

Stored size: 1013 Bytes

Contents

module Spree
  module Controllers
    module Users
      module SetBoxPreferenceDecorator
        def self.prepended(base)
          base.before_action(
            :set_box_preferences,
            only: :show
          )
        end

        private
        def set_box_preferences
          @user.generate_spree_api_key! unless @user.spree_api_key

          must_change_subscriptions = @user.subscriptions.find_all do |subscription|
            subscription.box_preference.nil?              
          end

          must_change_subscriptions.each do |subscription|
            potential_variants = SolidusSubscriptionBoxes::SubscriptionPeriod.period_for_date(subscription.actionable_date).variants
            subscription.box_preference = SolidusSubscriptionBoxes::BoxPreference.new(preference: potential_variants.sample(3).map(&:id))
          end
        end
      end
    end
  end
end
  
Spree::UsersController.prepend(Spree::Controllers::Users::SetBoxPreferenceDecorator)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
solidus_subscription_boxes-0.0.6 app/decorators/spree/controllers/users/set_box_preference_decorator.rb
solidus_subscription_boxes-0.0.5 app/decorators/spree/controllers/users/set_box_preference_decorator.rb