solidus_paypal_commerce_platform 0.3.1 → 0.3.2

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: 83bafb3733936d20e66b9f930f5c503ab68ca026f8c7e74b864af8664199e60f
4
- data.tar.gz: 9861750ba0a1c6e699cdaac965153c5a2879f641b4a851c776c90221b3f1ccae
3
+ metadata.gz: f0a234ec6a201a2b7e7a4f9e3c65359c70acaea23995134f7de9513a96530fc4
4
+ data.tar.gz: b94786018f9da41a5e5915db8c87b87c2eaa767580e8739c11ae472fb248d782
5
5
  SHA512:
6
- metadata.gz: 582c3af98a3247f8d6ff6408f98076d24079952ddf9b59e9fd7828b83f00314b50757cb518e39039b306ec9b084e7d2bba2ff58f673541ed1c8e98abb28c038a
7
- data.tar.gz: a435d9d574cefe7eac61c5387fc225f868fe9a96ff54d35a29df4f1453144591ac4f936d905f527512b13a8ce787e5cd0778fbe5b487e347d7072667c7ff1ca6
6
+ metadata.gz: 825f4bcff61bbb9ff666391607dc657383d67b2635454375bc12df1a8bef1c02e2cff334b0474ce53dd9d7e04c4d8885dcc9a85ccb729d31a641ab5b9ccaa84c
7
+ data.tar.gz: 7589bcb66e13a57e5154227ef9212b209177f1a3f76338c67c852ca837c9df60670e8ce1730153b7121db364034f191170f59d95a863b563663ba47fcfde6b35
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2020 Nebulab srls
1
+ Copyright (c) 2021 Nebulab srls
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -72,6 +72,8 @@ module SolidusPaypalCommercePlatform
72
72
  currency: currency
73
73
  }
74
74
 
75
+ parameters[:shipping_preference] = 'NO_SHIPPING' if step_names.exclude? 'delivery'
76
+
75
77
  "https://www.paypal.com/sdk/js?#{parameters.to_query}"
76
78
  end
77
79
  end
@@ -44,10 +44,19 @@ module SolidusPaypalCommercePlatform
44
44
  end
45
45
 
46
46
  def name(address)
47
- {
48
- given_name: address.firstname,
49
- surname: address.lastname
50
- }
47
+ if greater_than_2_10?
48
+ name = ::Spree::Address::Name.new @order.ship_address.name
49
+
50
+ {
51
+ given_name: name.first_name,
52
+ surname: name.last_name
53
+ }
54
+ else
55
+ {
56
+ given_name: address.firstname,
57
+ surname: address.lastname
58
+ }
59
+ end
51
60
  end
52
61
 
53
62
  def purchase_units(include_shipping_address: true)
@@ -63,13 +72,21 @@ module SolidusPaypalCommercePlatform
63
72
  def shipping_info
64
73
  {
65
74
  name: {
66
- full_name: @order.ship_address.full_name
75
+ full_name: full_name,
67
76
  },
68
77
  email_address: @order.email,
69
78
  address: get_address(@order.ship_address)
70
79
  }
71
80
  end
72
81
 
82
+ def full_name
83
+ if greater_than_2_10?
84
+ @order.ship_address.name
85
+ else
86
+ @order.ship_address.full_name
87
+ end
88
+ end
89
+
73
90
  def line_items
74
91
  @order.line_items.map{ |line_item|
75
92
  {
@@ -103,5 +120,9 @@ module SolidusPaypalCommercePlatform
103
120
  value: amount
104
121
  }
105
122
  end
123
+
124
+ def greater_than_2_10?
125
+ ::Spree.solidus_gem_version >= Gem::Version.new('2.11')
126
+ end
106
127
  end
107
128
  end
data/bin/sandbox CHANGED
@@ -67,7 +67,7 @@ unbundled bundle install --gemfile Gemfile
67
67
 
68
68
  unbundled bundle exec rake db:drop db:create
69
69
 
70
- unbundled bundle exec rails generate spree:install \
70
+ unbundled bundle exec rails generate solidus:install \
71
71
  --auto-accept \
72
72
  --user_class=Spree::User \
73
73
  --enforce_available_locales=true \
@@ -39,7 +39,7 @@ module SolidusPaypalCommercePlatform
39
39
  end
40
40
 
41
41
  def default_env
42
- return ENV['PAYPAL_ENV'] if ENV['PAYPAL_ENV']
42
+ return ENV['PAYPAL_ENV'] if ENV['PAYPAL_ENV'] # rubocop:disable Rails/EnvironmentVariableAccess
43
43
 
44
44
  case Rails.env
45
45
  when 'production'
@@ -60,11 +60,11 @@ module SolidusPaypalCommercePlatform
60
60
  end
61
61
 
62
62
  def partner_id
63
- @partner_id ||= ENV['PAYPAL_PARTNER_ID'] || DEFAULT_PARTNER_ID[env.to_sym]
63
+ @partner_id ||= ENV['PAYPAL_PARTNER_ID'] || DEFAULT_PARTNER_ID[env.to_sym] # rubocop:disable Rails/EnvironmentVariableAccess
64
64
  end
65
65
 
66
66
  def partner_client_id
67
- @partner_client_id ||= ENV['PAYPAL_PARTNER_CLIENT_ID'] || DEFAULT_PARTNER_CLIENT_ID[env.to_sym]
67
+ @partner_client_id ||= ENV['PAYPAL_PARTNER_CLIENT_ID'] || DEFAULT_PARTNER_CLIENT_ID[env.to_sym] # rubocop:disable Rails/EnvironmentVariableAccess
68
68
  end
69
69
 
70
70
  def partner_code
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'deface'
4
- require 'spree/core'
4
+ require 'solidus_core'
5
5
  require 'solidus_paypal_commerce_platform'
6
6
  require 'solidus_webhooks'
7
+ require 'solidus_support'
7
8
 
8
9
  module SolidusPaypalCommercePlatform
9
10
  class Engine < Rails::Engine
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusPaypalCommercePlatform
4
- VERSION = '0.3.1'
4
+ VERSION = '0.3.2'
5
5
  end
@@ -36,5 +36,5 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency 'paypal-checkout-sdk'
37
37
 
38
38
  spec.add_development_dependency 'cuprite'
39
- spec.add_development_dependency 'solidus_dev_support', '~> 2.1'
39
+ spec.add_development_dependency 'solidus_dev_support', '~> 2.5'
40
40
  end
@@ -93,6 +93,14 @@ RSpec.describe SolidusPaypalCommercePlatform::PaymentMethod, type: :model do
93
93
  end
94
94
  end
95
95
 
96
+ context 'when checkout_steps does not include "delivery"' do
97
+ let(:order) { instance_double(Spree::Order, checkout_steps: { "foo" => "bar" }) }
98
+
99
+ it 'disables autocommit' do
100
+ expect(url.query.split("&")).to include("shipping_preference=NO_SHIPPING")
101
+ end
102
+ end
103
+
96
104
  context 'when messaging is turned on' do
97
105
  let(:order) { instance_double(Spree::Order, checkout_steps: { "foo" => "bar" }) }
98
106
 
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe SolidusPaypalCommercePlatform::PaypalOrder, type: :model do
6
+ describe '#to_json' do
7
+ subject(:to_json) { described_class.new(order).to_json('intent') }
8
+
9
+ let(:order) { create(:order_ready_to_complete) }
10
+
11
+ it { expect { to_json }.not_to raise_error }
12
+
13
+ if Spree.solidus_gem_version >= Gem::Version.new('2.11')
14
+ it 'returns the name of the user' do
15
+ expect(to_json).to match hash_including(
16
+ purchase_units: array_including(
17
+ hash_including(shipping: hash_including(name: { full_name: 'John Von Doe' }))
18
+ ),
19
+ payer: hash_including(name: { given_name: 'John', surname: 'Von Doe' })
20
+ )
21
+ end
22
+ else
23
+ it 'returns the name and surname of the user' do
24
+ expect(to_json).to match hash_including(
25
+ purchase_units: array_including(
26
+ hash_including(shipping: hash_including(name: { full_name: 'John' }))
27
+ ),
28
+ payer: hash_including(name: { given_name: 'John', surname: nil })
29
+ )
30
+ end
31
+ end
32
+ end
33
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_paypal_commerce_platform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Denny
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-04-20 00:00:00.000000000 Z
12
+ date: 2021-05-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: deface
@@ -113,14 +113,14 @@ dependencies:
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '2.1'
116
+ version: '2.5'
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '2.1'
123
+ version: '2.5'
124
124
  description:
125
125
  email: contact@solidus.io
126
126
  executables: []
@@ -226,6 +226,7 @@ files:
226
226
  - spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb
227
227
  - spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb
228
228
  - spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb
229
+ - spec/models/solidus_paypal_commerce_platform/paypal_order_spec.rb
229
230
  - spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb
230
231
  - spec/models/solidus_paypal_commerce_platform/wizard_spec.rb
231
232
  - spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb
@@ -279,6 +280,7 @@ test_files:
279
280
  - spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb
280
281
  - spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb
281
282
  - spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb
283
+ - spec/models/solidus_paypal_commerce_platform/paypal_order_spec.rb
282
284
  - spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb
283
285
  - spec/models/solidus_paypal_commerce_platform/wizard_spec.rb
284
286
  - spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb