solidus_subscriptions 1.0.0.rc1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -2
- data/app/controllers/solidus_subscriptions/api/v1/subscriptions_controller.rb +1 -1
- data/app/decorators/models/solidus_subscriptions/spree/order/finalize_creates_subscriptions.rb +2 -0
- data/app/decorators/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb +2 -2
- data/{app/decorators → lib/decorators/api}/controllers/solidus_subscriptions/spree/api/line_items_controller/create_subscription_line_items.rb +0 -0
- data/{app/decorators → lib/decorators/frontend}/controllers/solidus_subscriptions/spree/orders_controller/create_subscription_line_items.rb +0 -0
- data/lib/generators/solidus_subscriptions/install/templates/initializer.rb +13 -0
- data/lib/solidus_subscriptions.rb +1 -0
- data/lib/solidus_subscriptions/checkout.rb +2 -9
- data/lib/solidus_subscriptions/configuration.rb +10 -4
- data/lib/solidus_subscriptions/order_creator.rb +29 -0
- data/lib/solidus_subscriptions/version.rb +1 -1
- data/solidus_subscriptions.gemspec +1 -1
- data/spec/decorators/models/solidus_subscriptions/spree/order/finalize_creates_subscriptions_spec.rb +1 -1
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77254a24d5d35be4a22fe74a9287f2c6ce89c8940327dbf207f93cbda65ac0c3
|
4
|
+
data.tar.gz: 3e9d2b8bf25c12e47581281de6e3b659eb0951452030304be5de10f78b781388
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bdb4af6b9b67879b7cb487053ce43ae0cdddcdeec0f4aea0728c177b65b7f9f1f79fae7ae866512d8b1ccc5bc1fb9620eb60bb5bb1352ecfaecb8b61816003c
|
7
|
+
data.tar.gz: 58ca346aa4a7bda38c126444fb4de00e5692f9902f4bfc7c34e408addc03cc6fc331c161a5ee3553829d89d50204769591168ebf3232073509bc7539130a9522
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [v1.0.0
|
3
|
+
## [v1.0.0](https://github.com/solidusio-contrib/solidus_subscriptions/tree/v1.0.0) (2021-05-16)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/solidusio-contrib/solidus_subscriptions/compare/a8a92654ba21b22bd3f8d07c3ae25e3604e7942a...v1.0.0
|
5
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_subscriptions/compare/a8a92654ba21b22bd3f8d07c3ae25e3604e7942a...v1.0.0)
|
6
6
|
|
7
7
|
**Breaking changes:**
|
8
8
|
|
@@ -80,6 +80,7 @@
|
|
80
80
|
|
81
81
|
**Closed issues:**
|
82
82
|
|
83
|
+
- Dependabot can't resolve your Ruby dependency files [\#226](https://github.com/solidusio-contrib/solidus_subscriptions/issues/226)
|
83
84
|
- Fix sandbox generation [\#196](https://github.com/solidusio-contrib/solidus_subscriptions/issues/196)
|
84
85
|
- Dependabot can't resolve your Ruby dependency files [\#187](https://github.com/solidusio-contrib/solidus_subscriptions/issues/187)
|
85
86
|
- Dependabot can't resolve your Ruby dependency files [\#186](https://github.com/solidusio-contrib/solidus_subscriptions/issues/186)
|
@@ -111,6 +112,11 @@
|
|
111
112
|
|
112
113
|
**Merged pull requests:**
|
113
114
|
|
115
|
+
- Introduce Installment OrderCreator configuration [\#229](https://github.com/solidusio-contrib/solidus_subscriptions/pull/229) ([cesartalves](https://github.com/cesartalves))
|
116
|
+
- Update solidus\_core requirement from \>= 2.0.0, \< 3 to \>= 2.0.0, \< 4 [\#225](https://github.com/solidusio-contrib/solidus_subscriptions/pull/225) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
117
|
+
- Fix Api Subscription Permitted LineItem Attributes [\#223](https://github.com/solidusio-contrib/solidus_subscriptions/pull/223) ([cesartalves](https://github.com/cesartalves))
|
118
|
+
- Fix Spree::OrdersController decoration [\#221](https://github.com/solidusio-contrib/solidus_subscriptions/pull/221) ([cesartalves](https://github.com/cesartalves))
|
119
|
+
- Reload order during finalize action [\#220](https://github.com/solidusio-contrib/solidus_subscriptions/pull/220) ([seand7565](https://github.com/seand7565))
|
114
120
|
- Update specs to conform with rubocop [\#217](https://github.com/solidusio-contrib/solidus_subscriptions/pull/217) ([seand7565](https://github.com/seand7565))
|
115
121
|
- Update promotion rule names on db [\#216](https://github.com/solidusio-contrib/solidus_subscriptions/pull/216) ([luca-landa](https://github.com/luca-landa))
|
116
122
|
- Improve promotion rules names [\#215](https://github.com/solidusio-contrib/solidus_subscriptions/pull/215) ([luca-landa](https://github.com/luca-landa))
|
@@ -78,7 +78,7 @@ module SolidusSubscriptions
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def line_item_attributes
|
81
|
-
SolidusSubscriptions.configuration.subscription_line_item_attributes
|
81
|
+
SolidusSubscriptions.configuration.subscription_line_item_attributes
|
82
82
|
end
|
83
83
|
|
84
84
|
def update_payment_attributes(attributes)
|
data/app/decorators/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb
CHANGED
@@ -12,9 +12,9 @@ module SolidusSubscriptions
|
|
12
12
|
def remove_from_subscriptions
|
13
13
|
SolidusSubscriptions::LineItem.where(subscribable: self).delete_all
|
14
14
|
end
|
15
|
+
|
16
|
+
::Spree::Variant.prepend self
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
19
|
-
|
20
|
-
Spree::Variant.prepend(SolidusSubscriptions::Spree::Variant::AutoDeleteFromSubscriptions)
|
File without changes
|
File without changes
|
@@ -96,4 +96,17 @@ SolidusSubscriptions.configure do |config|
|
|
96
96
|
# with new subscription cycles by clearing any past failed installment when a new one is created
|
97
97
|
|
98
98
|
# config.clear_past_installments = true
|
99
|
+
|
100
|
+
# ==================================== Custom Order Creation =====================================
|
101
|
+
#
|
102
|
+
# This settings allows the customization of the creation of each Installment Order by means of
|
103
|
+
# providing a class that can be switched / inherited
|
104
|
+
#
|
105
|
+
#
|
106
|
+
# the order_creator_class is initialized and called on the creation of the Order for each Subscription
|
107
|
+
# Installment.
|
108
|
+
# If you want to add simple extra attributes to the Order (such as a channel), that can be done by
|
109
|
+
# overriding the `extra_attributes` method on a subclass
|
110
|
+
#
|
111
|
+
# config.order_creator_class = 'SolidusSubscriptions::OrderCreator'
|
99
112
|
end
|
@@ -26,6 +26,7 @@ require 'solidus_subscriptions/dispatcher/failure_dispatcher'
|
|
26
26
|
require 'solidus_subscriptions/dispatcher/out_of_stock_dispatcher'
|
27
27
|
require 'solidus_subscriptions/dispatcher/payment_failed_dispatcher'
|
28
28
|
require 'solidus_subscriptions/dispatcher/success_dispatcher'
|
29
|
+
require 'solidus_subscriptions/order_creator'
|
29
30
|
|
30
31
|
module SolidusSubscriptions
|
31
32
|
class << self
|
@@ -32,14 +32,7 @@ module SolidusSubscriptions
|
|
32
32
|
private
|
33
33
|
|
34
34
|
def create_order
|
35
|
-
|
36
|
-
user: installment.subscription.user,
|
37
|
-
email: installment.subscription.user.email,
|
38
|
-
store: installment.subscription.store || ::Spree::Store.default,
|
39
|
-
subscription_order: true,
|
40
|
-
subscription: installment.subscription,
|
41
|
-
currency: installment.subscription.currency
|
42
|
-
)
|
35
|
+
SolidusSubscriptions.configuration.order_creator_class.new(installment).call
|
43
36
|
end
|
44
37
|
|
45
38
|
def populate_order(order)
|
@@ -61,7 +54,7 @@ module SolidusSubscriptions
|
|
61
54
|
order.payments.create(
|
62
55
|
payment_method: installment.subscription.payment_method_to_use,
|
63
56
|
source: installment.subscription.payment_source_to_use,
|
64
|
-
amount: order.total
|
57
|
+
amount: order.total
|
65
58
|
)
|
66
59
|
end
|
67
60
|
|
@@ -4,14 +4,14 @@ module SolidusSubscriptions
|
|
4
4
|
class Configuration
|
5
5
|
attr_accessor(
|
6
6
|
:maximum_total_skips, :maximum_reprocessing_time, :churn_buster_account_id,
|
7
|
-
:churn_buster_api_key, :clear_past_installments, :processing_error_handler
|
7
|
+
:churn_buster_api_key, :clear_past_installments, :processing_error_handler
|
8
8
|
)
|
9
9
|
|
10
10
|
attr_writer(
|
11
11
|
:success_dispatcher_class, :failure_dispatcher_class, :payment_failed_dispatcher_class,
|
12
12
|
:out_of_stock_dispatcher, :maximum_successive_skips, :reprocessing_interval,
|
13
13
|
:minimum_cancellation_notice, :processing_queue, :subscription_line_item_attributes,
|
14
|
-
:subscription_attributes, :subscribable_class,
|
14
|
+
:subscription_attributes, :subscribable_class, :order_creator_class
|
15
15
|
)
|
16
16
|
|
17
17
|
def success_dispatcher_class
|
@@ -52,11 +52,12 @@ module SolidusSubscriptions
|
|
52
52
|
|
53
53
|
def subscription_line_item_attributes
|
54
54
|
@subscription_line_item_attributes ||= [
|
55
|
+
:id,
|
55
56
|
:quantity,
|
56
57
|
:subscribable_id,
|
57
58
|
:interval_length,
|
58
59
|
:interval_units,
|
59
|
-
:end_date
|
60
|
+
:end_date
|
60
61
|
]
|
61
62
|
end
|
62
63
|
|
@@ -68,7 +69,7 @@ module SolidusSubscriptions
|
|
68
69
|
{
|
69
70
|
shipping_address_attributes: Spree::PermittedAttributes.address_attributes,
|
70
71
|
billing_address_attributes: Spree::PermittedAttributes.address_attributes
|
71
|
-
}
|
72
|
+
}
|
72
73
|
]
|
73
74
|
end
|
74
75
|
|
@@ -80,5 +81,10 @@ module SolidusSubscriptions
|
|
80
81
|
def churn_buster?
|
81
82
|
churn_buster_account_id.present? && churn_buster_api_key.present?
|
82
83
|
end
|
84
|
+
|
85
|
+
def order_creator_class
|
86
|
+
@order_creator_class ||= 'SolidusSubscriptions::OrderCreator'
|
87
|
+
@order_creator_class.constantize
|
88
|
+
end
|
83
89
|
end
|
84
90
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SolidusSubscriptions
|
4
|
+
class OrderCreator
|
5
|
+
def initialize(installment)
|
6
|
+
@installment = installment
|
7
|
+
end
|
8
|
+
|
9
|
+
def call
|
10
|
+
::Spree::Order.create(
|
11
|
+
user: installment.subscription.user,
|
12
|
+
email: installment.subscription.user.email,
|
13
|
+
store: installment.subscription.store || ::Spree::Store.default,
|
14
|
+
subscription_order: true,
|
15
|
+
subscription: installment.subscription,
|
16
|
+
currency: installment.subscription.currency,
|
17
|
+
**extra_attributes
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def extra_attributes
|
24
|
+
{}
|
25
|
+
end
|
26
|
+
|
27
|
+
attr_reader :installment
|
28
|
+
end
|
29
|
+
end
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency 'deface'
|
33
33
|
spec.add_dependency 'httparty', '~> 0.18'
|
34
34
|
spec.add_dependency 'i18n'
|
35
|
-
spec.add_dependency 'solidus_core',
|
35
|
+
spec.add_dependency 'solidus_core', '>= 2.0.0', '< 4'
|
36
36
|
spec.add_dependency 'solidus_support', '~> 0.7'
|
37
37
|
spec.add_dependency 'state_machines'
|
38
38
|
|
data/spec/decorators/models/solidus_subscriptions/spree/order/finalize_creates_subscriptions_spec.rb
CHANGED
@@ -8,7 +8,7 @@ RSpec.describe SolidusSubscriptions::Spree::Order::FinalizeCreatesSubscriptions
|
|
8
8
|
|
9
9
|
let(:order) { create :order, :with_subscription_line_items }
|
10
10
|
let(:subscription_line_item) { order.subscription_line_items.last }
|
11
|
-
let(:expected_actionable_date) { Time.zone.today + subscription_line_item.interval }
|
11
|
+
let(:expected_actionable_date) { Time.zone.today + subscription_line_item.subscription.interval }
|
12
12
|
|
13
13
|
around { |e| Timecop.freeze { e.run } }
|
14
14
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_subscriptions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deface
|
@@ -61,7 +61,7 @@ dependencies:
|
|
61
61
|
version: 2.0.0
|
62
62
|
- - "<"
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: '
|
64
|
+
version: '4'
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -71,7 +71,7 @@ dependencies:
|
|
71
71
|
version: 2.0.0
|
72
72
|
- - "<"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '4'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: solidus_support
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,8 +241,6 @@ files:
|
|
241
241
|
- app/controllers/spree/admin/subscription_orders_controller.rb
|
242
242
|
- app/controllers/spree/admin/subscriptions_controller.rb
|
243
243
|
- app/controllers/spree/admin/users/subscriptions_controller.rb
|
244
|
-
- app/decorators/controllers/solidus_subscriptions/spree/api/line_items_controller/create_subscription_line_items.rb
|
245
|
-
- app/decorators/controllers/solidus_subscriptions/spree/orders_controller/create_subscription_line_items.rb
|
246
244
|
- app/decorators/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb
|
247
245
|
- app/decorators/models/solidus_subscriptions/spree/order/after_create.rb
|
248
246
|
- app/decorators/models/solidus_subscriptions/spree/order/finalize_creates_subscriptions.rb
|
@@ -336,6 +334,8 @@ files:
|
|
336
334
|
- db/migrate/20201123171026_change_actionable_date_to_date.rb
|
337
335
|
- db/migrate/20210205140422_add_currency_to_subscription.rb
|
338
336
|
- db/migrate/20210323165714_update_promotion_rule_names.rb
|
337
|
+
- lib/decorators/api/controllers/solidus_subscriptions/spree/api/line_items_controller/create_subscription_line_items.rb
|
338
|
+
- lib/decorators/frontend/controllers/solidus_subscriptions/spree/orders_controller/create_subscription_line_items.rb
|
339
339
|
- lib/generators/solidus_subscriptions/install/install_generator.rb
|
340
340
|
- lib/generators/solidus_subscriptions/install/templates/initializer.rb
|
341
341
|
- lib/solidus_subscriptions.rb
|
@@ -353,6 +353,7 @@ files:
|
|
353
353
|
- lib/solidus_subscriptions/dispatcher/payment_failed_dispatcher.rb
|
354
354
|
- lib/solidus_subscriptions/dispatcher/success_dispatcher.rb
|
355
355
|
- lib/solidus_subscriptions/engine.rb
|
356
|
+
- lib/solidus_subscriptions/order_creator.rb
|
356
357
|
- lib/solidus_subscriptions/permission_sets/default_customer.rb
|
357
358
|
- lib/solidus_subscriptions/permission_sets/subscription_management.rb
|
358
359
|
- lib/solidus_subscriptions/permitted_attributes.rb
|
@@ -438,11 +439,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
438
439
|
version: '2.5'
|
439
440
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
440
441
|
requirements:
|
441
|
-
- - "
|
442
|
+
- - ">="
|
442
443
|
- !ruby/object:Gem::Version
|
443
|
-
version:
|
444
|
+
version: '0'
|
444
445
|
requirements: []
|
445
|
-
rubygems_version: 3.0.
|
446
|
+
rubygems_version: 3.0.8
|
446
447
|
signing_key:
|
447
448
|
specification_version: 4
|
448
449
|
summary: Add subscription support to Solidus
|