effective_orders 6.13.2 → 6.13.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8049636b7c27adef561a64502f766ffb04c2eee32aa20b67f4d23b0a9558750f
4
- data.tar.gz: 42f995d287210bbffbc9e8dd51ba7dd0eb80532b2cd29a83b8bb6bf8fb1f0f12
3
+ metadata.gz: a7823c5fb7e1f5de56c962426e8ac2f19dcf21eb3ee562652a086db304b1da18
4
+ data.tar.gz: f9487dfd15d7088bb70c96a865b8ef06e16fe67c986e25df209234e0f40344e8
5
5
  SHA512:
6
- metadata.gz: 80972c78f2afd52689269f44afe7db244d7a0f3920de43b0fac5edd875b2e984f38f7c67c69e189fb2d19e0de87d436092a1d41c7e9edf940a0f12f3e531dd60
7
- data.tar.gz: c4e54da784e04f5d10433b11ac757a72044fc1e217cdc538248b41eaae24e8b4acac02959e6eb7ddd9eca9e959640139dc8057593f0009495b98e0f7a1ec48a5
6
+ metadata.gz: c5385f2d84ac47da6a90f54dce6a7abde305a85637f1fa9c15686c5fee5e27f36f9ac20c65355c4e92225a02496cb26e7f009a09bc00a6ba8e3c0bd7423a5619
7
+ data.tar.gz: fca2f157ed9f4d30b716382b6161653c42867e4d229f14707b6e2f11edbd49eec1d2677ac7ed381d527f025817d1c050dcc27ff8a2127899a330f34abffdbbbf
@@ -86,6 +86,17 @@ module Effective
86
86
  true
87
87
  end
88
88
 
89
+ def purchase_free!(order)
90
+ raise('expected a free order') unless order.free?
91
+
92
+ self.purchase_response = nil
93
+ payment = { card: "none", details: "free order. no payment required."}
94
+ self.purchase_response = payment
95
+
96
+ # Free is always valid
97
+ true
98
+ end
99
+
89
100
  # Create Payment
90
101
  def create_payment(order, payment_intent)
91
102
  response = post('/payments', params: create_payment_params(order, payment_intent))
@@ -128,10 +139,17 @@ module Effective
128
139
 
129
140
  order.update_columns(delayed_payment_purchase_ran_at: now, delayed_payment_purchase_result: nil)
130
141
 
131
- purchased = purchase!(order, order.delayed_payment_intent)
132
- provider = order.payment_provider
142
+ purchased = if order.total.to_i > 0
143
+ purchase!(order, order.delayed_payment_intent)
144
+ elsif order.free?
145
+ purchase_free!(order)
146
+ else
147
+ raise("Unexpected order amount: #{order.total}")
148
+ end
149
+
150
+ provider = (order.free? ? 'free' : order.payment_provider)
133
151
  payment = self.payment()
134
- card = payment["card"]
152
+ card = payment["card"] || payment[:card]
135
153
 
136
154
  if purchased
137
155
  order.assign_attributes(delayed_payment_purchase_result: "success")
@@ -152,6 +170,8 @@ module Effective
152
170
  ExceptionNotifier.notify_exception(e, data: { order_id: order.id }) if defined?(ExceptionNotifier)
153
171
 
154
172
  puts "Error purchasing #{order.id}: #{e.message}"
173
+
174
+ raise(e) if Rails.env.development? || Rails.env.test?
155
175
  end
156
176
  end
157
177
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '6.13.2'.freeze
2
+ VERSION = '6.13.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_orders
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.13.2
4
+ version: 6.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect