workarea-emarsys 1.0.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +7 -8
- data/CHANGELOG.md +6 -9
- data/Gemfile +1 -3
- data/README.md +4 -3
- data/app/controllers/workarea/storefront/email_signups_controller.decorator +1 -0
- data/app/services/{workarea/emarsys → emarsys}/contact/order.rb +0 -0
- data/app/services/{workarea/emarsys → emarsys}/contact/user.rb +0 -0
- data/app/services/{workarea/emarsys → emarsys}/contact.rb +0 -0
- data/app/views/workarea/storefront/_emarsys_tracking.html.haml +2 -2
- data/app/workers/workarea/emarsys/{save_order_contact.rb → save_order.rb} +1 -4
- data/app/workers/workarea/emarsys/save_user.rb +1 -5
- data/config/initializers/appends.rb +0 -5
- data/config/initializers/fields.rb +21 -0
- data/config/initializers/workarea.rb +0 -4
- data/config/routes.rb +1 -6
- data/lib/workarea/emarsys/version.rb +1 -1
- data/lib/workarea/emarsys.rb +7 -5
- data/test/services/{workarea/emarsys → emarsys}/contact_test.rb +0 -0
- data/test/system/workarea/storefront/emarsys_tracking_system_test.rb +2 -3
- data/test/workers/workarea/emarsys/save_user_test.rb +2 -2
- data/test/workers/workarea/emarsys/sync_orders_test.rb +12 -18
- data/workarea-emarsys.gemspec +1 -1
- metadata +10 -21
- data/app/controllers/workarea/admin/emarsys/configurations_controller.rb +0 -33
- data/app/models/emarsys/configuration.rb +0 -16
- data/app/view_models/workarea/admin/emarsys_configuration_view_model.rb +0 -19
- data/app/views/workarea/admin/emarsys/configurations/edit.html.haml +0 -68
- data/app/views/workarea/admin/shared/_emarsys_configuration_link.html.haml +0 -1
- data/test/integration/workarea/admin/emarsys_configuration_integration_test.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94cf477df712c5d3c8a1b2151f48ef900faea02c58cb7f3fda832a5199d3b21b
|
4
|
+
data.tar.gz: f450274e16cbf9d7f3f1bc629b0eb9743537bb87b29b5d2bb7e0f20a862b24e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f40bf6d8f666c3c478cace1a8e8e8d440bfc5bcb3189e44707954762140869731e0e4dff938949fefa520195909f5c8c560cb6d3aad5b8a739c6663bedc3d544
|
7
|
+
data.tar.gz: 7057465c102e2ad513dd8124fefaaa854d5021f317a21ecbffd41cf52051c74119219e5a0bc6290b60da094811e4c8bda5ddc313cd47935f9524a4150cea30a6
|
data/.github/workflows/ci.yml
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
name: CI
|
2
2
|
on: [push]
|
3
|
-
|
4
|
-
BUNDLE_GEMS__WEBLINC__COM: ${{ secrets.BUNDLE_GEMS__WEBLINC__COM }}
|
3
|
+
|
5
4
|
jobs:
|
6
5
|
static_analysis:
|
7
6
|
runs-on: ubuntu-latest
|
8
7
|
steps:
|
9
8
|
- uses: actions/checkout@v1
|
10
|
-
- uses: workarea-commerce/ci/bundler-audit@
|
11
|
-
- uses: workarea-commerce/ci/rubocop@
|
9
|
+
- uses: workarea-commerce/ci/bundler-audit@v1
|
10
|
+
- uses: workarea-commerce/ci/rubocop@v1
|
12
11
|
- uses: workarea-commerce/ci/eslint@v1
|
13
12
|
with:
|
14
13
|
args: '**/*.js'
|
@@ -19,7 +18,7 @@ jobs:
|
|
19
18
|
- uses: actions/checkout@v1
|
20
19
|
- uses: actions/setup-ruby@v1
|
21
20
|
with:
|
22
|
-
ruby-version: 2.
|
21
|
+
ruby-version: 2.6.x
|
23
22
|
- uses: workarea-commerce/ci/test@v1
|
24
23
|
with:
|
25
24
|
command: bin/rails app:workarea:test:admin
|
@@ -30,7 +29,7 @@ jobs:
|
|
30
29
|
- uses: actions/checkout@v1
|
31
30
|
- uses: actions/setup-ruby@v1
|
32
31
|
with:
|
33
|
-
ruby-version: 2.
|
32
|
+
ruby-version: 2.6.x
|
34
33
|
- uses: workarea-commerce/ci/test@v1
|
35
34
|
with:
|
36
35
|
command: bin/rails app:workarea:test:core
|
@@ -41,7 +40,7 @@ jobs:
|
|
41
40
|
- uses: actions/checkout@v1
|
42
41
|
- uses: actions/setup-ruby@v1
|
43
42
|
with:
|
44
|
-
ruby-version: 2.
|
43
|
+
ruby-version: 2.6.x
|
45
44
|
- uses: workarea-commerce/ci/test@v1
|
46
45
|
with:
|
47
46
|
command: bin/rails app:workarea:test:storefront
|
@@ -52,7 +51,7 @@ jobs:
|
|
52
51
|
- uses: actions/checkout@v1
|
53
52
|
- uses: actions/setup-ruby@v1
|
54
53
|
with:
|
55
|
-
ruby-version: 2.
|
54
|
+
ruby-version: 2.6.x
|
56
55
|
- uses: workarea-commerce/ci/test@v1
|
57
56
|
with:
|
58
57
|
command: bin/rails app:workarea:test:plugins
|
data/CHANGELOG.md
CHANGED
@@ -1,16 +1,13 @@
|
|
1
|
-
Workarea Emarsys 1.0
|
1
|
+
Workarea Emarsys 1.1.0 (2019-11-26)
|
2
2
|
--------------------------------------------------------------------------------
|
3
3
|
|
4
|
-
*
|
4
|
+
* Updates for v3.5 compatibility.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
to their correct location so as to enable decorating them.
|
6
|
+
Removes the custom build configuration panel in favor
|
7
|
+
of the out-of-box admin settings available in 3.5.
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
EMARSYS-3
|
13
|
-
Tom Scott
|
9
|
+
EMARSYS-1
|
10
|
+
Jeff Yucis
|
14
11
|
|
15
12
|
|
16
13
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -10,6 +10,9 @@ This integration supports the following:
|
|
10
10
|
3. Order syncronization
|
11
11
|
4. Full Web-Extend Analytics integration
|
12
12
|
|
13
|
+
The Workarea Emarsys integration is a Emarsys Add-on. Contact your Emarsys support person to
|
14
|
+
have the Workarea Emarsys integration enabled for your account.
|
15
|
+
|
13
16
|
Getting Started
|
14
17
|
--------------------------------------------------------------------------------
|
15
18
|
|
@@ -30,9 +33,7 @@ bundle
|
|
30
33
|
|
31
34
|
Configuration
|
32
35
|
--------------------------------------------------------------------------------
|
33
|
-
|
34
|
-
|
35
|
-
The follow is accessible via the configuration panel:
|
36
|
+
The following fields can be edited via the admin site settings:
|
36
37
|
|
37
38
|
1. **Production:** A toggle switch to set the integration into production mode, defaults to false.
|
38
39
|
2. **Customer ID:** The customer ID of account. Ask your Emarsys account manager for this value.
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,10 +1,10 @@
|
|
1
|
-
- if Workarea
|
1
|
+
- if Workarea.config.merchant_id.present?
|
2
2
|
:javascript
|
3
3
|
var ScarabQueue = ScarabQueue || [];
|
4
4
|
(function(id) {
|
5
5
|
if (document.getElementById(id)) return;
|
6
6
|
var js = document.createElement('script'); js.id = id;
|
7
|
-
js.src = '//cdn.scarabresearch.com/js/#{Workarea
|
7
|
+
js.src = '//cdn.scarabresearch.com/js/#{Workarea.config.merchant_id}/scarab-v2.js';
|
8
8
|
var fs = document.getElementsByTagName('script')[0];
|
9
9
|
fs.parentNode.insertBefore(js, fs);
|
10
10
|
})('scarab-js-api');
|
@@ -10,7 +10,7 @@ module Workarea
|
|
10
10
|
)
|
11
11
|
|
12
12
|
def perform(id)
|
13
|
-
return unless
|
13
|
+
return unless Emarsys.customer_id.present?
|
14
14
|
|
15
15
|
order = Workarea::Order.find(id)
|
16
16
|
address = Workarea::Payment.find(order.id).address
|
@@ -20,9 +20,6 @@ module Workarea
|
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
23
|
-
def settings
|
24
|
-
Workarea::Emarsys::Configuration.current
|
25
|
-
end
|
26
23
|
|
27
24
|
def gateway
|
28
25
|
Emarsys.gateway
|
@@ -10,7 +10,7 @@ module Workarea
|
|
10
10
|
)
|
11
11
|
|
12
12
|
def perform(id)
|
13
|
-
return unless
|
13
|
+
return unless Emarsys.customer_id.present?
|
14
14
|
|
15
15
|
user = Workarea::User.find(id)
|
16
16
|
|
@@ -29,10 +29,6 @@ module Workarea
|
|
29
29
|
Emarsys.gateway
|
30
30
|
end
|
31
31
|
|
32
|
-
def settings
|
33
|
-
Workarea::Emarsys::Configuration.current
|
34
|
-
end
|
35
|
-
|
36
32
|
def address(user)
|
37
33
|
return unless user.addresses.present?
|
38
34
|
|
@@ -8,11 +8,6 @@ Workarea.append_partials(
|
|
8
8
|
'workarea/storefront/emarsys/current_user_emarsys_cart'
|
9
9
|
)
|
10
10
|
|
11
|
-
Workarea.append_partials(
|
12
|
-
"admin.settings_menu",
|
13
|
-
"workarea/admin/shared/emarsys_configuration_link"
|
14
|
-
)
|
15
|
-
|
16
11
|
Workarea.append_javascripts(
|
17
12
|
'storefront.modules',
|
18
13
|
'workarea/storefront/emarsys/modules/web_extend_adapter'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Workarea::Configuration.define_fields do
|
2
|
+
fieldset 'Emarsys', namespaced: false do
|
3
|
+
field 'Customer ID',
|
4
|
+
type: :string,
|
5
|
+
default: '',
|
6
|
+
description: 'Emarsys customer ID. Required for using API endpoints. Contact your Emarays Support team to get this value.',
|
7
|
+
allow_blank: true
|
8
|
+
|
9
|
+
field 'Merchant ID',
|
10
|
+
type: :string,
|
11
|
+
default: '',
|
12
|
+
description: 'Your Emarsys merchant ID. This value is required for the Web Extend data integration.',
|
13
|
+
allow_blank: true
|
14
|
+
|
15
|
+
field 'Emarsys Production API',
|
16
|
+
id: :emarsys_production,
|
17
|
+
type: :boolean,
|
18
|
+
default: false,
|
19
|
+
description: 'Whether to use the production API endpoints.'
|
20
|
+
end
|
21
|
+
end
|
@@ -7,10 +7,6 @@ Workarea.configure do |config|
|
|
7
7
|
|
8
8
|
config.emarsys.export_interval = 1.day
|
9
9
|
|
10
|
-
# Merchant ID used for web extend JS
|
11
|
-
# this is required for the web extend javascript
|
12
|
-
config.emarsys.merchant_id = nil
|
13
|
-
|
14
10
|
config.emarsys.api_timeout = 3
|
15
11
|
config.emarsys.open_timeout = 3
|
16
12
|
end
|
data/config/routes.rb
CHANGED
data/lib/workarea/emarsys.rb
CHANGED
@@ -27,7 +27,11 @@ module Workarea
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.customer_id
|
30
|
-
|
30
|
+
Workarea.config.customer_id
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.merchant_id
|
34
|
+
Workarea.config.merchant_id
|
31
35
|
end
|
32
36
|
|
33
37
|
def self.config
|
@@ -40,8 +44,7 @@ module Workarea
|
|
40
44
|
# @return [Emarsys::Gateway]
|
41
45
|
def self.gateway
|
42
46
|
if credentials.present?
|
43
|
-
|
44
|
-
Emarsys::Gateway.new(secret_key, settings.customer_id, { test: !settings.production? })
|
47
|
+
Emarsys::Gateway.new(secret_key, Emarsys.customer_id, { test: !Workarea.config.emarsys_production_api })
|
45
48
|
else
|
46
49
|
Emarsys::BogusGateway.new
|
47
50
|
end
|
@@ -49,8 +52,7 @@ module Workarea
|
|
49
52
|
|
50
53
|
def self.sales_data_gateway
|
51
54
|
if credentials.present?
|
52
|
-
|
53
|
-
Emarsys::SalesDataGateway.new(api_token, { merchant_id: settings.merchant_id })
|
55
|
+
Emarsys::SalesDataGateway.new(api_token, { merchant_id: Emarsys.merchant_id })
|
54
56
|
else
|
55
57
|
Emarsys::SalesDataBogusGateway.new
|
56
58
|
end
|
File without changes
|
@@ -4,15 +4,14 @@ module Workarea
|
|
4
4
|
module Storefront
|
5
5
|
class EmarsysTrackingSystemTest < Workarea::SystemTest
|
6
6
|
def test_emarsys_tracking_js
|
7
|
-
|
7
|
+
Workarea.config.merchant_id = 'abcdefg'
|
8
8
|
visit storefront.root_path
|
9
9
|
|
10
10
|
emarsys_script = find('script', text: 'abcdefg', visible: false)
|
11
11
|
|
12
12
|
assert(emarsys_script.present?)
|
13
13
|
|
14
|
-
|
15
|
-
settings.save!
|
14
|
+
Workarea.config.merchant_id = nil
|
16
15
|
|
17
16
|
visit storefront.root_path
|
18
17
|
emarsys_script = find('script', text: 'abcdefg', visible: false) rescue nil
|
@@ -3,7 +3,7 @@ require 'test_helper'
|
|
3
3
|
module Workarea
|
4
4
|
class Emarsys::SaveUserTest < TestCase
|
5
5
|
def test_save_user_sets_time_stamp
|
6
|
-
Workarea
|
6
|
+
Workarea.config.customer_id = '1234'
|
7
7
|
user = create_user
|
8
8
|
|
9
9
|
Workarea::Emarsys::SaveUser.new.perform(user.id)
|
@@ -15,7 +15,7 @@ module Workarea
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def test_save_user_does_nothing_without_customer_id_set
|
18
|
-
Workarea
|
18
|
+
Workarea.config.customer_id = nil
|
19
19
|
user = create_user
|
20
20
|
|
21
21
|
Workarea::Emarsys::SaveUser.new.perform(user.id)
|
@@ -5,34 +5,28 @@ module Workarea
|
|
5
5
|
include EmarsysApiConfig
|
6
6
|
|
7
7
|
def test_sync_orders_sends_file
|
8
|
-
|
9
|
-
|
10
|
-
merchant_id = Workarea::Emarsys::Configuration.create!(merchant_id: "19CAA097101B372A").merchant_id
|
11
|
-
|
12
|
-
api_url = "https://admin.scarabresearch.com/hapi/merchant/#{merchant_id}/sales-data/api"
|
8
|
+
merchant_id = "19CAA097101B372A"
|
9
|
+
Workarea.config.merchant_id = merchant_id
|
13
10
|
|
14
|
-
|
11
|
+
VCR.use_cassette("emarsys/sales/send_data", match_requests_on: [:method, :uri]) do
|
12
|
+
api_url = "https://admin.scarabresearch.com/hapi/merchant/#{merchant_id}/sales-data/api"
|
15
13
|
|
16
|
-
|
14
|
+
create_placed_order
|
17
15
|
|
18
|
-
|
16
|
+
Workarea::Emarsys::SyncOrders.new.perform
|
19
17
|
|
20
|
-
|
21
|
-
end
|
18
|
+
assert_requested :post, api_url
|
22
19
|
end
|
23
20
|
end
|
24
21
|
|
25
22
|
def test_sync_orders_sends_nothing_when_no_orders
|
26
|
-
|
27
|
-
|
28
|
-
api_url = "https://admin.scarabresearch.com/hapi/merchant/#{merchant_id}/sales-data/api"
|
29
|
-
|
30
|
-
config.emarsys.merchant_id = merchant_id
|
23
|
+
merchant_id = "19CAA097101B372A"
|
24
|
+
Workarea.config.merchant_id = merchant_id
|
31
25
|
|
32
|
-
|
26
|
+
api_url = "https://admin.scarabresearch.com/hapi/merchant/#{merchant_id}/sales-data/api"
|
27
|
+
Workarea::Emarsys::SyncOrders.new.perform
|
33
28
|
|
34
|
-
|
35
|
-
end
|
29
|
+
refute_requested :post, api_url
|
36
30
|
end
|
37
31
|
end
|
38
32
|
end
|
data/workarea-emarsys.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
|
18
18
|
s.license = 'Business Software License'
|
19
19
|
|
20
|
-
s.add_dependency 'workarea', '>=
|
20
|
+
s.add_dependency 'workarea', '>= 3.5.x'
|
21
21
|
s.add_dependency 'workarea-google_product_feed', '~> 3.x'
|
22
22
|
s.add_dependency "escher"
|
23
23
|
s.add_dependency "faraday", "~> 0.10"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-emarsys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Yucis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: workarea
|
@@ -16,20 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '3.5'
|
19
|
+
version: 3.5.x
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 3.
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '3.5'
|
26
|
+
version: 3.5.x
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: workarea-google_product_feed
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,7 +94,6 @@ files:
|
|
100
94
|
- app/assets/javascripts/workarea/storefront/emarsys/modules/web_extend_adapter.js
|
101
95
|
- app/assets/stylesheets/emarsys/.keep
|
102
96
|
- app/controllers/.keep
|
103
|
-
- app/controllers/workarea/admin/emarsys/configurations_controller.rb
|
104
97
|
- app/controllers/workarea/storefront/email_signups_controller.decorator
|
105
98
|
- app/controllers/workarea/storefront/users/addresses_controller.decorator
|
106
99
|
- app/helpers/.keep
|
@@ -110,25 +103,22 @@ files:
|
|
110
103
|
- app/lib/workarea/emarsys/response.rb
|
111
104
|
- app/lib/workarea/emarsys/sales_data_bogus_gateway.rb
|
112
105
|
- app/lib/workarea/emarsys/sales_data_gateway.rb
|
113
|
-
- app/models/emarsys/configuration.rb
|
114
106
|
- app/models/emarsys/country.rb
|
115
107
|
- app/models/workarea/email/signup.decorator
|
116
108
|
- app/models/workarea/order.decorator
|
117
109
|
- app/models/workarea/user.decorator
|
118
|
-
- app/services/
|
119
|
-
- app/services/
|
120
|
-
- app/services/
|
121
|
-
- app/view_models/workarea/admin/emarsys_configuration_view_model.rb
|
122
|
-
- app/views/workarea/admin/emarsys/configurations/edit.html.haml
|
123
|
-
- app/views/workarea/admin/shared/_emarsys_configuration_link.html.haml
|
110
|
+
- app/services/emarsys/contact.rb
|
111
|
+
- app/services/emarsys/contact/order.rb
|
112
|
+
- app/services/emarsys/contact/user.rb
|
124
113
|
- app/views/workarea/storefront/_emarsys_tracking.html.haml
|
125
114
|
- app/views/workarea/storefront/emarsys/_current_user_emarsys_cart.json.jbuilder
|
126
115
|
- app/workers/workarea/emarsys/save_email_signup.rb
|
127
|
-
- app/workers/workarea/emarsys/
|
116
|
+
- app/workers/workarea/emarsys/save_order.rb
|
128
117
|
- app/workers/workarea/emarsys/save_user.rb
|
129
118
|
- app/workers/workarea/emarsys/sync_orders.rb
|
130
119
|
- bin/rails
|
131
120
|
- config/initializers/appends.rb
|
121
|
+
- config/initializers/fields.rb
|
132
122
|
- config/initializers/scheduled_jobs.rb
|
133
123
|
- config/initializers/workarea.rb
|
134
124
|
- config/locales/en.yml
|
@@ -181,9 +171,8 @@ files:
|
|
181
171
|
- test/dummy/db/seeds.rb
|
182
172
|
- test/dummy/lib/assets/.keep
|
183
173
|
- test/dummy/log/.keep
|
184
|
-
- test/integration/workarea/admin/emarsys_configuration_integration_test.rb
|
185
174
|
- test/lib/workarea/emarsys/gateway_test.rb
|
186
|
-
- test/services/
|
175
|
+
- test/services/emarsys/contact_test.rb
|
187
176
|
- test/support/workarea/emarsys_api_config.rb
|
188
177
|
- test/system/workarea/storefront/emarsys_tracking_system_test.rb
|
189
178
|
- test/teaspoon_env.rb
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module Workarea
|
2
|
-
module Admin
|
3
|
-
module Emarsys
|
4
|
-
class ConfigurationsController < Admin::ApplicationController
|
5
|
-
required_permissions :settings
|
6
|
-
|
7
|
-
def edit
|
8
|
-
@configuration = configuration
|
9
|
-
end
|
10
|
-
|
11
|
-
def update
|
12
|
-
if configuration.update_attributes(configuration_params)
|
13
|
-
redirect_to admin.edit_emarsys_configuration_path, flash: { success: t('workarea.admin.emarsys_configuration.edit.flash_messages.updated') }
|
14
|
-
else
|
15
|
-
flash[:error] = t('workarea.admin.emarsys_configuration.edit.flash_messages.save_error')
|
16
|
-
@configuration = configuration
|
17
|
-
render :edit, status: :unprocessable_entity
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
def configuration
|
23
|
-
model = Workarea::Emarsys::Configuration.current
|
24
|
-
Workarea::Admin::EmarsysConfigurationViewModel.new(model)
|
25
|
-
end
|
26
|
-
|
27
|
-
def configuration_params
|
28
|
-
params.permit(:production, :merchant_id, :customer_id)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Workarea
|
2
|
-
module Emarsys
|
3
|
-
class Configuration
|
4
|
-
include ApplicationDocument
|
5
|
-
|
6
|
-
field :merchant_id, type: String
|
7
|
-
field :customer_id, type: String
|
8
|
-
|
9
|
-
field :production, type: Boolean, default: false
|
10
|
-
|
11
|
-
def self.current
|
12
|
-
first || new
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Workarea
|
2
|
-
module Admin
|
3
|
-
class EmarsysConfigurationViewModel < ApplicationViewModel
|
4
|
-
def masked_api_key
|
5
|
-
return unless Workarea::Emarsys.secret_key.present?
|
6
|
-
key = Workarea::Emarsys.secret_key
|
7
|
-
last_digits = key.to_s.slice(-4..-1)
|
8
|
-
"XXXXXXXXXX#{last_digits}"
|
9
|
-
end
|
10
|
-
|
11
|
-
def masked_sales_api_key
|
12
|
-
return unless Workarea::Emarsys.api_token.present?
|
13
|
-
key = Workarea::Emarsys.api_token
|
14
|
-
last_digits = key.to_s.slice(-4..-1)
|
15
|
-
"XXXXXXXXXX#{last_digits}"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
- @page_title = t('workarea.admin.emarsys_configuration.edit.title')
|
2
|
-
|
3
|
-
.view
|
4
|
-
.view__header
|
5
|
-
.view__heading
|
6
|
-
= link_to "↑ #{t('workarea.admin.search_settings.show.dashboard_link')}", settings_dashboards_path
|
7
|
-
%h1= t('workarea.admin.emarsys_configuration.edit.title')
|
8
|
-
|
9
|
-
.view__container
|
10
|
-
= form_tag emarsys_configuration_path, method: :patch, data: { unsaved_changes: '' } do
|
11
|
-
|
12
|
-
.grid__cell.grid__cell--50-at-medium
|
13
|
-
|
14
|
-
.property
|
15
|
-
%span.property__name
|
16
|
-
= t('workarea.admin.emarsys_configuration.edit.api_key')
|
17
|
-
= link_to '#api-key', data: { tooltip: '' } do
|
18
|
-
= inline_svg('workarea/admin/icons/help.svg', class: 'svg-icon svg-icon--small svg-icon--blue', title: t('workarea.admin.emarsys_configuration.edit.api_key'))
|
19
|
-
#api-key.tooltip-content
|
20
|
-
%p= t('workarea.admin.emarsys_configuration.edit.help.api_key')
|
21
|
-
|
22
|
-
- if @configuration.masked_api_key.present?
|
23
|
-
%p= @configuration.masked_api_key
|
24
|
-
- else
|
25
|
-
%p= t('workarea.admin.emarsys_configuration.edit.no_key')
|
26
|
-
|
27
|
-
%span.property__name
|
28
|
-
= t('workarea.admin.emarsys_configuration.edit.sales_api_key')
|
29
|
-
= link_to '#sales-api-key', data: { tooltip: '' } do
|
30
|
-
= inline_svg('workarea/admin/icons/help.svg', class: 'svg-icon svg-icon--small svg-icon--blue', title: t('workarea.admin.emarsys_configuration.edit.sales_api_key'))
|
31
|
-
#sales-api-key.tooltip-content
|
32
|
-
%p= t('workarea.admin.emarsys_configuration.edit.help.sales_api_key')
|
33
|
-
|
34
|
-
- if @configuration.masked_sales_api_key.present?
|
35
|
-
%p= @configuration.masked_sales_api_key
|
36
|
-
- else
|
37
|
-
%p= t('workarea.admin.emarsys_configuration.edit.no_key')
|
38
|
-
|
39
|
-
%span.property__name
|
40
|
-
= t('workarea.admin.emarsys_configuration.edit.production')
|
41
|
-
= link_to '#enabled', data: { tooltip: '' } do
|
42
|
-
= inline_svg('workarea/admin/icons/help.svg', class: 'svg-icon svg-icon--small svg-icon--blue', title: t('workarea.admin.emarsys_configuration.edit.production'))
|
43
|
-
#enabled.tooltip-content
|
44
|
-
%p= t('workarea.admin.emarsys_configuration.edit.help.production')
|
45
|
-
|
46
|
-
= toggle_button_for 'production', @configuration.production?
|
47
|
-
|
48
|
-
%span.property__name
|
49
|
-
= t('workarea.admin.emarsys_configuration.edit.customer_id')
|
50
|
-
= link_to '#show-on-pdp', data: { tooltip: '' } do
|
51
|
-
= inline_svg('workarea/admin/icons/help.svg', class: 'svg-icon svg-icon--small svg-icon--blue', title: t('workarea.admin.emarsys_configuration.edit.customer_id'))
|
52
|
-
#show-on-pdp.tooltip-content
|
53
|
-
%p= t('workarea.admin.emarsys_configuration.edit.help.customer_id')
|
54
|
-
|
55
|
-
= text_field_tag 'customer_id', @configuration.customer_id, class: 'text-box', id: "customer_id"
|
56
|
-
|
57
|
-
%span.property__name
|
58
|
-
= t('workarea.admin.emarsys_configuration.edit.merchant_id')
|
59
|
-
= link_to '#show-on-cart', data: { tooltip: '' } do
|
60
|
-
= inline_svg('workarea/admin/icons/help.svg', class: 'svg-icon svg-icon--small svg-icon--blue', title: t('workarea.admin.emarsys_configuration.edit.merchant_id'))
|
61
|
-
#show-on-cart.tooltip-content
|
62
|
-
%p= t('workarea.admin.emarsys_configuration.edit.help.merchant_id')
|
63
|
-
|
64
|
-
= text_field_tag 'merchant_id', @configuration.merchant_id, class: 'text-box', id: "merchant_id"
|
65
|
-
|
66
|
-
.workflow-bar
|
67
|
-
.grid.grid--auto.grid--right.grid--middle
|
68
|
-
.grid__cell= button_tag t('workarea.admin.emarsys_configuration.edit.button'), value: 'save_settings', class: 'workflow-bar__button workflow-bar__button--update'
|
@@ -1 +0,0 @@
|
|
1
|
-
%li{ class: "primary-nav__item" }= link_to t('workarea.admin.shared.primary_nav.emarsys_configuration_title'), edit_emarsys_configuration_path, class: navigation_link_classes(edit_emarsys_configuration_path)
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
module Workarea
|
4
|
-
module Admin
|
5
|
-
class EmarsysConfigurationIntegrationTest < Workarea::IntegrationTest
|
6
|
-
include Admin::IntegrationTest
|
7
|
-
|
8
|
-
def test_create_configuration
|
9
|
-
patch admin.emarsys_configuration_path,
|
10
|
-
params: {
|
11
|
-
customer_id: '12345',
|
12
|
-
merchant_id: 'ABCDEFG',
|
13
|
-
production: true
|
14
|
-
}
|
15
|
-
|
16
|
-
assert_equal(1, Workarea::Emarsys::Configuration.count)
|
17
|
-
|
18
|
-
result = Workarea::Emarsys::Configuration.current
|
19
|
-
assert_equal('12345', result.customer_id)
|
20
|
-
assert_equal('ABCDEFG', result.merchant_id)
|
21
|
-
assert(result.production?)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|