summaryrefslogtreecommitdiff
path: root/app/decorators/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/decorators/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb')
-rw-r--r--app/decorators/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/app/decorators/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb b/app/decorators/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb
new file mode 100644
index 0000000..1fb4cdf
--- /dev/null
+++ b/app/decorators/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)