solidus_bolt 0.3.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f450560bb140e6c7a301138a192a5c8a96016500980580de6866eb1ed79a061d
4
- data.tar.gz: 84ace4cc0e18e06ddb78b72ff4d06460c1bc0eeed5f7ad1beb1c53e0791a8a8f
3
+ metadata.gz: 3d91d355d44749ba39444cd212cf3358af9d4fdc765c0aef0331fc0ea363066e
4
+ data.tar.gz: d0a97484c2dd27d7ab078480b3a57f979bb438ca714322bc3dd6ba8388dec066
5
5
  SHA512:
6
- metadata.gz: c2be760b6012c698408e74d73a5b312cd3b9117f8defee100ac4f4234fa404efcff9d8553fa42170764772d2a334162ac7a30a0f3a2d4dbeb8544f29ea354547
7
- data.tar.gz: 171b51d8f32782f81c7d50871161f8a731ccdc308cc9485c21efdb14a03248a8112f27db93cf2a4bebc69a3af2c75aa6389297242c4c00b4dfd2001a9db6b26b
6
+ metadata.gz: 6499d04e3f47a046fbca944f1d7ad0f8a6181c299175fa5b1734960d912295f47b68596c2eb103651edf40147948a3cba211df1e69c9746d6367165b0bb176b1
7
+ data.tar.gz: c2d55795d7683a04debbe3d3d18f3a5f46a581759d12d990941af05204fd4281245e238667526ef4ce21d5cf1b54cccbe9c814359729818b285072e3c6467a98
@@ -31,6 +31,11 @@ const redirectToNextStep = (frontend) => {
31
31
  }
32
32
  }
33
33
 
34
+ async function getResponseText(response) {
35
+ const text = await response.text();
36
+ return text;
37
+ }
38
+
34
39
  const updateOrder = async (card, paymentMethodId, frontend) => {
35
40
  await fetch(`/api/checkouts/${Spree.current_order_id}`, {
36
41
  method: 'PATCH',
@@ -39,6 +44,7 @@ const updateOrder = async (card, paymentMethodId, frontend) => {
39
44
  'X-Spree-Order-Token': Spree.current_order_token
40
45
  },
41
46
  body: JSON.stringify({
47
+ 'state': 'payment',
42
48
  'order': {
43
49
  'payments_attributes': [{
44
50
  'payment_method_id': paymentMethodId,
@@ -55,8 +61,14 @@ const updateOrder = async (card, paymentMethodId, frontend) => {
55
61
  }
56
62
  })
57
63
  })
58
- .then(() => {
59
- redirectToNextStep(frontend)
64
+ .then((response) => {
65
+ if(response.ok) {
66
+ redirectToNextStep(frontend)
67
+ } else {
68
+ getResponseText(response).then(text => {
69
+ console.error(text);
70
+ });
71
+ }
60
72
  })
61
73
  .catch((response) => {
62
74
  console.log('Error updating order')
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Admin
5
+ class BoltCallbackUrlsController < Spree::Admin::BaseController
6
+ def edit
7
+ callback_urls = SolidusBolt::MerchantConfiguration::GetCallbackUrlsService.call
8
+
9
+ @oauth_logout = callback_urls['callback_urls'].find { |c| c['type'] == 'oauth_logout' }&.dig('url')
10
+ @oauth_redirect = callback_urls['callback_urls'].find { |c| c['type'] == 'oauth_redirect' }&.dig('url')
11
+ end
12
+
13
+ def update
14
+ SolidusBolt::MerchantConfiguration::SetCallbackUrlsService.call(
15
+ oauth_logout: params[:bolt_callback_urls][:oauth_logout],
16
+ oauth_redirect: params[:bolt_callback_urls][:oauth_redirect]
17
+ )
18
+ flash[:success] = "Successfully updated callback urls."
19
+
20
+ redirect_to edit_admin_bolt_callback_urls_path
21
+ rescue SolidusBolt::ServerError => e
22
+ flash[:error] = e.message
23
+
24
+ render :new
25
+ end
26
+
27
+ private
28
+
29
+ def bolt_webhook_params
30
+ params
31
+ .require(:bolt_webhook)
32
+ .permit(
33
+ :event,
34
+ :webhook_url,
35
+ )
36
+ end
37
+ end
38
+ end
39
+ end
@@ -5,6 +5,7 @@ module SolidusBolt
5
5
  def bolt_cart
6
6
  {
7
7
  total_amount: display_total.cents,
8
+ tax_amount: display_tax_total.cents,
8
9
  order_reference: number,
9
10
  currency: currency,
10
11
  shipments: bolt_shipments_payload,
@@ -16,11 +16,11 @@ module SolidusBolt
16
16
  validate :config_can_be_created, on: :create
17
17
 
18
18
  def merchant_public_id
19
- publishable_key.split('.').first
19
+ publishable_key&.split('.')&.first
20
20
  end
21
21
 
22
22
  def division_public_id
23
- publishable_key.split('.').second
23
+ publishable_key&.split('.')&.second
24
24
  end
25
25
 
26
26
  def self.fetch
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBolt
4
+ module MerchantConfiguration
5
+ class GetCallbackUrlsService < SolidusBolt::BaseService
6
+ attr_reader :oauth_redirect, :oauth_logout, :get_account
7
+
8
+ def call
9
+ get_callbacks
10
+ end
11
+
12
+ private
13
+
14
+ def get_callbacks # rubocop:disable Naming/AccessorMethodName
15
+ url = "#{api_base_url}/#{api_version}/merchant/callbacks"
16
+ handle_result(
17
+ HTTParty.get(
18
+ url, headers: headers, query: query
19
+ )
20
+ )
21
+ end
22
+
23
+ def query
24
+ {
25
+ division_id: @config.division_public_id
26
+ }
27
+ end
28
+
29
+ def headers
30
+ {
31
+ 'Content-Type' => 'application/json',
32
+ }.merge(authentication_header)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBolt
4
+ module MerchantConfiguration
5
+ class SetCallbackUrlsService < SolidusBolt::BaseService
6
+ attr_reader :oauth_redirect, :oauth_logout, :get_account
7
+
8
+ def initialize(oauth_redirect: nil, oauth_logout: nil, get_account: nil)
9
+ @oauth_redirect = oauth_redirect
10
+ @oauth_logout = oauth_logout
11
+ @get_account = get_account
12
+
13
+ super
14
+ end
15
+
16
+ def call
17
+ set_callbacks
18
+ end
19
+
20
+ private
21
+
22
+ def set_callbacks
23
+ url = "#{api_base_url}/#{api_version}/merchant/callbacks"
24
+ handle_result(
25
+ HTTParty.post(
26
+ url, headers: headers, body: body.to_json
27
+ )
28
+ )
29
+ end
30
+
31
+ def body
32
+ {
33
+ division_id: @config.division_public_id,
34
+ callback_urls: callback_urls
35
+ }
36
+ end
37
+
38
+ def callback_urls
39
+ callback_urls = []
40
+
41
+ callback_urls << { type: 'oauth_redirect', url: oauth_redirect } if oauth_redirect.present?
42
+ callback_urls << { type: 'oauth_logout', url: oauth_logout } if oauth_logout.present?
43
+ callback_urls << { type: 'get_account', url: get_account } if get_account.present?
44
+
45
+ callback_urls
46
+ end
47
+
48
+ def headers
49
+ {
50
+ 'Content-Type' => 'application/json',
51
+ }.merge(authentication_header)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,24 @@
1
+ <% admin_breadcrumb(plural_resource_name(SolidusBolt::BoltConfiguration)) %>
2
+
3
+ <%= form_for :bolt_callback_urls, url: admin_bolt_callback_urls_path, method: :patch do |f| %>
4
+ <fieldset class="form-group no-border-bottom no-border-top">
5
+ <div class="row">
6
+ <div id="general_fields" class="col-9">
7
+ <div class="row">
8
+ <div class="col-12">
9
+ <%= f.label :oauth_redirect %>
10
+ <%= f.text_field :oauth_redirect, class: 'fullwidth', value: @oauth_redirect || 'https://domain.com/webhooks/bolt' %>
11
+ </div>
12
+ <div class="col-12">
13
+ <%= f.label :oauth_logout %>
14
+ <%= f.text_field :oauth_logout, class: 'fullwidth', value: @oauth_logout || 'https://domain.com/webhooks/bolt' %>
15
+ </div>
16
+ </div>
17
+ <div class="row p-2 justify-content-center">
18
+ <%= f.submit 'Update', class: 'btn btn-primary', data: { disable_with: 'Creating..' } %>
19
+ <%= link_to 'Cancel', admin_bolt_path, class: 'button' %>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </fieldset>
24
+ <% end %>
@@ -11,6 +11,9 @@
11
11
  ) %>
12
12
  </li>
13
13
  <% else %>
14
+ <li>
15
+ <%= link_to 'Configure Callbacks URLs', edit_admin_bolt_callback_urls_path, class: 'btn btn-primary' %>
16
+ </li>
14
17
  <li>
15
18
  <%= link_to 'Configure Webhooks', new_admin_bolt_webhook_path, class: 'btn btn-primary' %>
16
19
  </li>
data/config/routes.rb CHANGED
@@ -4,8 +4,13 @@ Spree::Core::Engine.routes.draw do
4
4
  namespace :admin do
5
5
  resource :bolt, only: [:show, :edit, :update]
6
6
  resource :bolt_webhook, only: [:new, :create]
7
+ resource :bolt_callback_urls, only: [:edit, :update]
7
8
  end
8
9
 
9
10
  post '/webhooks/bolt', to: '/solidus_bolt/webhooks#update'
10
11
  post '/api/accounts/bolt', to: '/solidus_bolt/accounts#create'
12
+
13
+ devise_scope :spree_user do
14
+ get '/bolt_logout', to: '/spree/user_sessions#destroy', as: 'bolt_logout'
15
+ end
11
16
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusBolt
4
- VERSION = '0.3.0'
4
+ VERSION = '0.6.0'
5
5
  end
@@ -1,6 +1,6 @@
1
1
  <% if spree_current_user %>
2
2
  <li><%= link_to t('spree.my_account'), spree.account_path %></li>
3
- <li><%= link_to t('spree.logout'), spree.logout_path, method: Devise.sign_out_via %></li>
3
+ <li><div class="bolt-account-sso" data-logged-in="true"></div></li>
4
4
  <% else %>
5
5
  <li>
6
6
  <div class="bolt-account-sso"></div>
data/solidus_bolt.gemspec CHANGED
@@ -34,7 +34,6 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency 'multi_json'
35
35
  spec.add_dependency 'omniauth-bolt'
36
36
  spec.add_dependency 'rails'
37
- spec.add_dependency 'solidus_auth_devise'
38
37
  spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 4']
39
38
  spec.add_dependency 'solidus_social'
40
39
  spec.add_dependency 'solidus_support', '~> 0.5'
@@ -7,6 +7,7 @@ RSpec.describe SolidusBolt::OrderDecorator do
7
7
  it 'returns a hash with line items and price' do
8
8
  result = {
9
9
  total_amount: (order.total * 100).to_i,
10
+ tax_amount: (order.tax_total * 100).to_i,
10
11
  order_reference: order.number,
11
12
  currency: 'USD',
12
13
  shipments: array_including(hash_including(:reference)),
@@ -0,0 +1,54 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api-sandbox.bolt.com/v1/merchant/callbacks?division_id=<DIVISION_PUBLIC_ID>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ X-Api-Key:
13
+ - "<API_KEY>"
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Wed, 27 Jul 2022 18:10:11 GMT
27
+ Content-Type:
28
+ - application/json; charset=UTF-8
29
+ Content-Length:
30
+ - '157'
31
+ Connection:
32
+ - keep-alive
33
+ Public-Key-Pins-Report-Only:
34
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
35
+ Set-Cookie:
36
+ - trk=f47ec1df-c6f5-460c-baf3-2ff506846dd2; Path=/; Max-Age=31536000; HttpOnly;
37
+ Secure; SameSite=None
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ X-Bolt-Api-Version:
41
+ - '2022-01-01'
42
+ X-Bolt-Trace-Id:
43
+ - Root=1-62e17f83-46d90f8f25fd210e0420dbdb
44
+ X-Device-Id:
45
+ - cc0e49b483c9bdb9dce4a6f35b9fcfb75194e19da94e18882fac74a192a8fc71
46
+ X-Envoy-Upstream-Service-Time:
47
+ - '29'
48
+ Server:
49
+ - envoy
50
+ body:
51
+ encoding: UTF-8
52
+ string: '{"callback_urls":[{"url":"http://localhost:3000/bolt_logout","type":"oauth_logout"},{"url":"http://localhost:3000/users/auth/bolt","type":"oauth_redirect"}]}'
53
+ recorded_at: Wed, 27 Jul 2022 18:10:11 GMT
54
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,54 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api-sandbox.bolt.com/v1/merchant/callbacks
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"division_id":"Rq4qB1QajYLn","callback_urls":[{"type":"oauth_redirect","url":"http://localhost:3000/users/auth/bolt"},{"type":"oauth_logout","url":"http://localhost:3000//user/spree_user/logout"}]}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ X-Api-Key:
13
+ - "<API_KEY>"
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 26 Jul 2022 21:17:15 GMT
27
+ Content-Type:
28
+ - application/json; charset=UTF-8
29
+ Content-Length:
30
+ - '4'
31
+ Connection:
32
+ - keep-alive
33
+ Public-Key-Pins-Report-Only:
34
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
35
+ Set-Cookie:
36
+ - trk=ea8f518e-f41d-4b8c-9615-161bff916a0f; Path=/; Max-Age=31536000; HttpOnly;
37
+ Secure; SameSite=None
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ X-Bolt-Api-Version:
41
+ - '2022-01-01'
42
+ X-Bolt-Trace-Id:
43
+ - Root=1-62e059db-307d2def557ae7d63cda1f93
44
+ X-Device-Id:
45
+ - 65fb9d676354668c7128f58217c94230e32303007b66559078fee6aefb88e8a4
46
+ X-Envoy-Upstream-Service-Time:
47
+ - '37'
48
+ Server:
49
+ - envoy
50
+ body:
51
+ encoding: UTF-8
52
+ string: 'null'
53
+ recorded_at: Tue, 26 Jul 2022 21:17:15 GMT
54
+ recorded_with: VCR 6.1.0
@@ -62,6 +62,11 @@ RSpec.describe SolidusBolt::BoltConfiguration, type: :model do
62
62
  bolt_configuration = create(:bolt_configuration, publishable_key: 'abc.def.ghi')
63
63
  expect(bolt_configuration.merchant_public_id).to eq('abc')
64
64
  end
65
+
66
+ it 'returns nil if publishable_key is nil' do
67
+ bolt_configuration = create(:bolt_configuration, publishable_key: nil)
68
+ expect(bolt_configuration.division_public_id).to be_nil
69
+ end
65
70
  end
66
71
 
67
72
  describe '#division_public_id' do
@@ -69,6 +74,11 @@ RSpec.describe SolidusBolt::BoltConfiguration, type: :model do
69
74
  bolt_configuration = create(:bolt_configuration, publishable_key: 'abc.def.ghi')
70
75
  expect(bolt_configuration.division_public_id).to eq('def')
71
76
  end
77
+
78
+ it 'returns nil if publishable_key is nil' do
79
+ bolt_configuration = create(:bolt_configuration, publishable_key: nil)
80
+ expect(bolt_configuration.division_public_id).to be_nil
81
+ end
72
82
  end
73
83
 
74
84
  describe '#environment_url' do
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe SolidusBolt::MerchantConfiguration::GetCallbackUrlsService, :vcr, :bolt_configuration do
6
+ subject(:api) { described_class.new }
7
+
8
+ describe '#call', vcr: true do
9
+ it 'receives the correct response' do
10
+ expect(api.call).to match hash_including(
11
+ 'callback_urls' => array_including(hash_including('type', 'url'))
12
+ )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe SolidusBolt::MerchantConfiguration::SetCallbackUrlsService, :vcr, :bolt_configuration do
6
+ subject(:api) { described_class.new(params) }
7
+
8
+ let(:params) {
9
+ {
10
+ oauth_redirect: 'http://localhost:3000/users/auth/bolt',
11
+ oauth_logout: 'http://localhost:3000//user/spree_user/logout'
12
+ }
13
+ }
14
+
15
+ describe '#call', vcr: true do
16
+ it 'receives the correct response' do
17
+ expect(api.call).to be_nil
18
+ end
19
+ end
20
+ end
@@ -7,7 +7,7 @@ RSpec.configure do |config|
7
7
  solidus_bolt_configuration.environment = 'sandbox'
8
8
  solidus_bolt_configuration.api_key = ENV['BOLT_API_KEY']
9
9
  solidus_bolt_configuration.signing_secret = ENV['BOLT_SIGNING_SECRET']
10
- solidus_bolt_configuration.publishable_key = ENV['BOLT_PUBLISHABLE_KEY']
10
+ solidus_bolt_configuration.publishable_key = ENV['BOLT_PUBLISHABLE_KEY'] || 'abc.def.ghi'
11
11
 
12
12
  solidus_bolt_configuration.save!
13
13
 
data/spec/support/vcr.rb CHANGED
@@ -19,6 +19,7 @@ VCR.configure do |config|
19
19
  end
20
20
 
21
21
  config.filter_sensitive_data('<PUBLISHABLE_KEY>') { SolidusBolt::BoltConfiguration.fetch.publishable_key }
22
+ config.filter_sensitive_data('<DIVISION_PUBLIC_ID>') { SolidusBolt::BoltConfiguration.fetch.division_public_id }
22
23
  config.filter_sensitive_data('<API_KEY>') { SolidusBolt::BoltConfiguration.fetch.api_key }
23
24
 
24
25
  # Let's you set default VCR record mode with VCR_RECORDE_MODE=all for re-recording
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_bolt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - piyushswain
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-07-25 00:00:00.000000000 Z
13
+ date: 2022-07-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: coffee-rails
@@ -96,20 +96,6 @@ dependencies:
96
96
  - - ">="
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
- - !ruby/object:Gem::Dependency
100
- name: solidus_auth_devise
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- version: '0'
106
- type: :runtime
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: '0'
113
99
  - !ruby/object:Gem::Dependency
114
100
  name: solidus_core
115
101
  requirement: !ruby/object:Gem::Requirement
@@ -256,6 +242,7 @@ files:
256
242
  - app/controllers/solidus_bolt/accounts_controller.rb
257
243
  - app/controllers/solidus_bolt/base_controller.rb
258
244
  - app/controllers/solidus_bolt/webhooks_controller.rb
245
+ - app/controllers/spree/admin/bolt_callback_urls_controller.rb
259
246
  - app/controllers/spree/admin/bolt_webhooks_controller.rb
260
247
  - app/controllers/spree/admin/bolts_controller.rb
261
248
  - app/decorators/controllers/solidus_bolt/spree_checkout_controller/add_addresses_to_bolt.rb
@@ -279,6 +266,8 @@ files:
279
266
  - app/services/solidus_bolt/accounts/detail_service.rb
280
267
  - app/services/solidus_bolt/accounts/detect_account_service.rb
281
268
  - app/services/solidus_bolt/base_service.rb
269
+ - app/services/solidus_bolt/merchant_configuration/get_callback_urls_service.rb
270
+ - app/services/solidus_bolt/merchant_configuration/set_callback_urls_service.rb
282
271
  - app/services/solidus_bolt/oauth/token_service.rb
283
272
  - app/services/solidus_bolt/payments/capture_sync_service.rb
284
273
  - app/services/solidus_bolt/payments/credit_sync_service.rb
@@ -294,6 +283,7 @@ files:
294
283
  - app/services/solidus_bolt/users/sync_addresses_service.rb
295
284
  - app/services/solidus_bolt/users/sync_payment_sources_service.rb
296
285
  - app/services/solidus_bolt/webhooks/create_service.rb
286
+ - app/views/spree/admin/bolt_callback_urls/edit.html.erb
297
287
  - app/views/spree/admin/bolt_webhooks/new.html.erb
298
288
  - app/views/spree/admin/bolts/_configuration.html.erb
299
289
  - app/views/spree/admin/bolts/_form.html.erb
@@ -355,6 +345,8 @@ files:
355
345
  - spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetailService/_call/with_wrong_access_token/gives_an_error.yml
356
346
  - spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetectAccountService/_call/receives_the_correct_response.yml
357
347
  - spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetectAccountService/_call/returns_status_200.yml
348
+ - spec/fixtures/vcr_cassettes/SolidusBolt_MerchantConfiguration_GetCallbackUrlsService/_call/receives_the_correct_response.yml
349
+ - spec/fixtures/vcr_cassettes/SolidusBolt_MerchantConfiguration_SetCallbackUrlsService/_call/receives_the_correct_response.yml
358
350
  - spec/fixtures/vcr_cassettes/SolidusBolt_Oauth_TokenService/_call/makes_the_API_call.yml
359
351
  - spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_AuthorizeService/when_repeat_payment/_call/makes_the_API_call.yml
360
352
  - spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_AuthorizeService/with_auto_capture/_call/makes_the_API_call.yml
@@ -386,6 +378,8 @@ files:
386
378
  - spec/services/solidus_bolt/accounts/detail_service_spec.rb
387
379
  - spec/services/solidus_bolt/accounts/detect_account_service_spec.rb
388
380
  - spec/services/solidus_bolt/base_service_spec.rb
381
+ - spec/services/solidus_bolt/merchant_configuration/get_callback_urls_service_spec.rb
382
+ - spec/services/solidus_bolt/merchant_configuration/set_callback_urls_service_spec.rb
389
383
  - spec/services/solidus_bolt/oauth/token_service_spec.rb
390
384
  - spec/services/solidus_bolt/payments/capture_sync_service_spec.rb
391
385
  - spec/services/solidus_bolt/payments/credit_sync_service_spec.rb
@@ -449,6 +443,8 @@ test_files:
449
443
  - spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetailService/_call/with_wrong_access_token/gives_an_error.yml
450
444
  - spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetectAccountService/_call/receives_the_correct_response.yml
451
445
  - spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetectAccountService/_call/returns_status_200.yml
446
+ - spec/fixtures/vcr_cassettes/SolidusBolt_MerchantConfiguration_GetCallbackUrlsService/_call/receives_the_correct_response.yml
447
+ - spec/fixtures/vcr_cassettes/SolidusBolt_MerchantConfiguration_SetCallbackUrlsService/_call/receives_the_correct_response.yml
452
448
  - spec/fixtures/vcr_cassettes/SolidusBolt_Oauth_TokenService/_call/makes_the_API_call.yml
453
449
  - spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_AuthorizeService/when_repeat_payment/_call/makes_the_API_call.yml
454
450
  - spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_AuthorizeService/with_auto_capture/_call/makes_the_API_call.yml
@@ -480,6 +476,8 @@ test_files:
480
476
  - spec/services/solidus_bolt/accounts/detail_service_spec.rb
481
477
  - spec/services/solidus_bolt/accounts/detect_account_service_spec.rb
482
478
  - spec/services/solidus_bolt/base_service_spec.rb
479
+ - spec/services/solidus_bolt/merchant_configuration/get_callback_urls_service_spec.rb
480
+ - spec/services/solidus_bolt/merchant_configuration/set_callback_urls_service_spec.rb
483
481
  - spec/services/solidus_bolt/oauth/token_service_spec.rb
484
482
  - spec/services/solidus_bolt/payments/capture_sync_service_spec.rb
485
483
  - spec/services/solidus_bolt/payments/credit_sync_service_spec.rb