diff options
Diffstat (limited to 'app/decorators/core/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb')
-rw-r--r-- | app/decorators/core/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/decorators/core/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb b/app/decorators/core/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb new file mode 100644 index 0000000..1fb4cdf --- /dev/null +++ b/app/decorators/core/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +# Spree::Users maintain a list of the subscriptions associated with them +module SolidusSubscriptions + module Spree + module User + module HaveManySubscriptions + def self.prepended(base) + base.has_many( + :subscriptions, + class_name: 'SolidusSubscriptions::Subscription', + foreign_key: 'user_id' + ) + + base.accepts_nested_attributes_for :subscriptions + end + + def subscriptions_attributes=(params) + ::Spree::Deprecation.warn( + 'Creating or updating subscriptions through Spree::User nested attributes is deprecated. ' \ + 'Please use subscriptions APIs directly.' + ) + super + end + end + end + end +end + +Spree.user_class.prepend(SolidusSubscriptions::Spree::User::HaveManySubscriptions) |