workarea-sezzle 1.0.3 → 1.0.4

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
  SHA256:
3
- metadata.gz: 4fa35dec4bc836f44ffc6081054beeeacbc6fd1a67fd477b668e31e3086f9451
4
- data.tar.gz: '079c018ce2e046be92aaebba74ae643c9f95cf8f62d570ec4f845e98cae0b1f9'
3
+ metadata.gz: be87020a46f155631d5dea416c434b671a902daa3c3160788cfb53d33332adf3
4
+ data.tar.gz: 31120de1aaea7033e0ffd48a522e753bc756e08cad483e7ad9551b6384d82571
5
5
  SHA512:
6
- metadata.gz: 72169975dedf3cce34d20c81123433f02901c167bf8e9ba3a212e3a5098c2e374789242ea982fbd679a9d28d0dbb090ae0f249b417fdd56ff29600b5ab391daf
7
- data.tar.gz: 183f04c25d12e310ff33e51b542dd2d4b389d57cc049aeaff6b747203dfb48e67f5a098efd1553309a68aa923b0b6f7d8e0d56a70f65d880257ad320ccbcf763
6
+ metadata.gz: 6afd0ccedf88ea81ac3f85f1ffe2b34e9bdfc7355444fee837ba0d3fc3b3d94f2aa57200903ccef0e9662e31804085f8d4ad6d77c5731fb241b6f3fc9d66c62f
7
+ data.tar.gz: 514f6181d64f6d4b5bce6819da5879460b608fd29e228bb7db9640db656f80c326d3d7dfbd0039b736c58a0d72a4ab67c6ee61fdc777f5522a260111bc93a97e
@@ -45,11 +45,16 @@ module Workarea
45
45
 
46
46
  shipping = current_shipping
47
47
 
48
+ # verify that the authorization was successfull
49
+ tender = payment.sezzle
50
+ verifcation_response = gateway.get_order(tender.sezzle_id)
51
+ verfied = verifcation_response.body["authorization"]["approved"] rescue false
52
+
48
53
  Pricing.perform(current_order, shipping)
49
54
  payment.adjust_tender_amounts(current_order.total_price)
50
55
 
51
56
  # place the order.
52
- if current_checkout.place_order
57
+ if verfied && current_checkout.place_order
53
58
  completed_place_order
54
59
  else
55
60
  incomplete_place_order
@@ -0,0 +1,9 @@
1
+ module Workarea
2
+ module Storefront
3
+ module SezzleHelper
4
+ def sezzle_language
5
+ I18n.locale == :fr ? 'fr' : 'en'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -11,12 +11,9 @@
11
11
  {
12
12
  targetXPath: "#{Workarea.config.sezzle.cart_config[:target_xpath]}",
13
13
  renderToPath: "#{Workarea.config.sezzle.cart_config[:render_to_path]}",
14
- urlMatch: "#{Workarea.config.sezzle.cart_config[:url_match]}",
15
- altVersionTemplate: {
16
- 'en': '4 interest-free payments of %%price%% with %%logo%% %%info%%',
17
- 'fr': '4 paiements de %%price%% sans intérêts avec %%logo%% %%info%%'
18
- }
14
+ urlMatch: "#{Workarea.config.sezzle.cart_config[:url_match]}"
19
15
  }
20
- ]
16
+ ],
17
+ language: "#{sezzle_language}"
21
18
  }
22
19
  %script{ src: "https://widget.sezzle.com/v1/javascript/price-widget?uuid=#{Workarea.config.sezzle_merchant_id}" }
@@ -97,6 +97,11 @@ module Workarea
97
97
  Response.new(response(payment_response_body))
98
98
  end
99
99
 
100
+ def get_order(id, attrs = {})
101
+ return Response.new(response(get_order_response_auth_failure)) if id == 'failure'
102
+ Response.new(response(get_order_response))
103
+ end
104
+
100
105
  private
101
106
 
102
107
  def response(body, status = 200)
@@ -123,6 +128,52 @@ module Workarea
123
128
  "uuid": '6c9db5d4-d09a-4224-860a-b5438ac32ca8'
124
129
  }
125
130
  end
131
+
132
+ def get_order_response
133
+ {
134
+ "authorization": {
135
+ "approved": true,
136
+ "authorization_amount": {
137
+ "amount_in_cents": 10000,
138
+ "currency": "USD"
139
+ },
140
+ "metadata": {
141
+ "location_id": "123",
142
+ "store_manager": "Jane Doe",
143
+ "store_name": "Downtown Minneapolis"
144
+ },
145
+ "order_amount": {
146
+ "amount_in_cents": 10000,
147
+ "currency": "USD"
148
+ },
149
+ "reference_id": "ord_12345",
150
+ "uuid": "12a34bc5-6de7-890f-g123-4hi1238jk902"
151
+ }
152
+ }
153
+ end
154
+
155
+ def get_order_response_auth_failure
156
+ {
157
+ "authorization": {
158
+ "approved": false,
159
+ "authorization_amount": {
160
+ "amount_in_cents": 10000,
161
+ "currency": "USD"
162
+ },
163
+ "metadata": {
164
+ "location_id": "123",
165
+ "store_manager": "Jane Doe",
166
+ "store_name": "Downtown Minneapolis"
167
+ },
168
+ "order_amount": {
169
+ "amount_in_cents": 10000,
170
+ "currency": "USD"
171
+ },
172
+ "reference_id": "ord_12345",
173
+ "uuid": "12a34bc5-6de7-890f-g123-4hi1238jk902"
174
+ }
175
+ }
176
+ end
126
177
  end
127
178
  end
128
179
  end
@@ -5,6 +5,12 @@ module Workarea
5
5
  class Engine < ::Rails::Engine
6
6
  include Workarea::Plugin
7
7
  isolate_namespace Workarea::Sezzle
8
+
9
+ config.to_prepare do
10
+ Workarea::Storefront::ApplicationController.helper(
11
+ Workarea::Storefront::SezzleHelper
12
+ )
13
+ end
8
14
  end
9
15
  end
10
16
  end
@@ -35,6 +35,13 @@ module Workarea
35
35
  Sezzle::Response.new(response)
36
36
  end
37
37
 
38
+ def get_order(id, attrs = {})
39
+ response = connection.get do |req|
40
+ req.url "v2/order/#{id}"
41
+ end
42
+ Sezzle::Response.new(response)
43
+ end
44
+
38
45
  private
39
46
 
40
47
  def connection
@@ -1,5 +1,5 @@
1
1
  module Workarea
2
2
  module Sezzle
3
- VERSION = '1.0.3'.freeze
3
+ VERSION = '1.0.4'.freeze
4
4
  end
5
5
  end
@@ -155,15 +155,15 @@ module Workarea
155
155
  assert_equal('purchase', store_credit_tender.transactions.first.action)
156
156
  end
157
157
 
158
- def test_failed_sezzle_capture
158
+ def test_failed_sezzle_authorize
159
159
  payment = Payment.find(order.id)
160
160
 
161
- payment.set_sezzle(token: 'error_token')
162
-
163
- params = { token: 'error_token', status: 'SUCCESS' }
164
-
165
- get storefront.complete_sezzle_path(params)
161
+ payment.set_sezzle(
162
+ sezzle_id: 'failure',
163
+ sezzle_response: '{}'
164
+ )
166
165
 
166
+ get storefront.complete_sezzle_path(order_id: order.id)
167
167
  payment.reload
168
168
  order.reload
169
169
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workarea-sezzle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Yucis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-08 00:00:00.000000000 Z
11
+ date: 2021-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: workarea
@@ -57,14 +57,15 @@ files:
57
57
  - app/controllers/workarea/storefront/checkout/place_order_controller.decorator
58
58
  - app/controllers/workarea/storefront/sezzle_controller.rb
59
59
  - app/helpers/.keep
60
+ - app/helpers/workarea/storefront/sezzle_helper.rb
60
61
  - app/mailers/.keep
61
62
  - app/models/.keep
63
+ - app/models/workarea/payment.decorator
62
64
  - app/models/workarea/payment/authorize/sezzle.rb
63
65
  - app/models/workarea/payment/capture/sezzle.rb
64
66
  - app/models/workarea/payment/purchase/sezzle.rb
65
67
  - app/models/workarea/payment/refund/sezzle.rb
66
68
  - app/models/workarea/payment/tender/sezzle.rb
67
- - app/models/workarea/paymentl.decorator
68
69
  - app/services/workarea/sezzle/order_builder.rb
69
70
  - app/view_models/workarea/storefront/checkout/payment_view_model.decorator
70
71
  - app/views/.keep