effective_orders 4.0.0beta7 → 4.0.0beta8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 18089b6f65a77083a900dfbbcc8cdb54e17b8b38
4
- data.tar.gz: caaf724407161e9323c9ba948787a5b1a0a8b242
3
+ metadata.gz: c66a5be43c958c2c0488de0973b4d5c30dff9bd4
4
+ data.tar.gz: 120bed89ab81bd1e8dc044fc39e8e6d331811032
5
5
  SHA512:
6
- metadata.gz: 4ce26f7074fec26063a6b47d2588be94b7fbacf1358cc69b48a4c64d05aeb92728134330382d09efab59d4fe7afd4aa5a1a8043673cf3befcd6931974dc74b9b
7
- data.tar.gz: 20d6236ddd583e61d50ee2f5f82bc20f63e2adc0e7d61c5b009682171f1d748e6ba6bbb7d97ee67d272095c9de5c2a96dd4b2f52ef69775ab49ca255411f757c
6
+ metadata.gz: e17e53c655a3f620b31442b305ab5fa7c869ab11db9be8b5b135c064fabb1064ce39ad13f91468dabc9dba2bc442c39de92d6dd5a984c23d7e36e4b36daa8fbb
7
+ data.tar.gz: 59401e22fe8407db0efe2857131d73fcbd1f7a298413c031e6a30e66e6430c1af0e5a372ca50c4d6bcb1dd3c341b0bb983f9bac3ec5506f445e59edc78eaa6e1
@@ -36,7 +36,6 @@ module Effective
36
36
  send_email(:subscription_payment_failed, customer)
37
37
  when 'customer.subscription.deleted'
38
38
  customer = Effective::Customer.where(stripe_customer_id: @event.data.object.customer).first!
39
- Effective::Subscription.where(customer: customer).destroy_all
40
39
  customer.update_attributes!(stripe_subscription_id: nil, status: nil, active_card: nil)
41
40
  customer.subscriptions.delete_all
42
41
 
@@ -24,6 +24,10 @@ module ActsAsSubscribable
24
24
  self.trialing_until = (Time.zone.now + EffectiveOrders.trial.fetch(:length)).end_of_day
25
25
  end
26
26
 
27
+ before_destroy(if: -> { subscribed? }) do
28
+ raise :abort unless (subscripter.destroy! rescue false)
29
+ end
30
+
27
31
  validates :trialing_until, presence: true, if: -> { EffectiveOrders.trial? }
28
32
  validates :subscription_status, inclusion: { allow_nil: true, in: EffectiveOrders::STATUSES.keys }
29
33
 
@@ -20,7 +20,7 @@ module Effective
20
20
 
21
21
  scope :deep, -> { includes(subscriptions: :subscribable) }
22
22
 
23
- after_commit(if: -> { stripe_subscription_id.present? }) do
23
+ after_commit do
24
24
  subscriptions.each { |subscription| subscription.subscribable.update_column(:subscription_status, status) }
25
25
  end
26
26
 
@@ -61,6 +61,15 @@ module Effective
61
61
  true
62
62
  end
63
63
 
64
+ def destroy!
65
+ return true unless plan
66
+
67
+ subscribable.subscription.destroy!
68
+ subscribable.update_column(:subscription_status, nil)
69
+ sync_subscription!
70
+ true
71
+ end
72
+
64
73
  protected
65
74
 
66
75
  # This should work even if the rest of the form doesn't. Careful with our transactions...
@@ -175,17 +184,6 @@ module Effective
175
184
  save!
176
185
  end
177
186
 
178
- # def destroy!
179
- # return true unless subscription && subscription.persisted? && customer.stripe_subscription.present?
180
-
181
- # raise 'is invalid' unless valid?
182
-
183
- # subscription.destroy!
184
- # customer.subscriptions.reload
185
-
186
- # sync! && customer.save!
187
- # end
188
-
189
187
  private
190
188
 
191
189
  def subscription
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '4.0.0beta7'.freeze
2
+ VERSION = '4.0.0beta8'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_orders
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0beta7
4
+ version: 4.0.0beta8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-18 00:00:00.000000000 Z
11
+ date: 2018-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails