duodealer_app 1.0.0 → 1.0.1

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/controllers/duodealer_app/callback_controller.rb +10 -10
  4. data/app/controllers/duodealer_app/sessions_controller.rb +23 -23
  5. data/app/controllers/duodealer_app/webhooks_controller.rb +1 -1
  6. data/lib/duodealer_app/controller_concerns/login_protection.rb +29 -29
  7. data/lib/duodealer_app/controller_concerns/webhook_verification.rb +2 -2
  8. data/lib/duodealer_app/jobs/scripttags_manager_job.rb +3 -3
  9. data/lib/duodealer_app/jobs/webhooks_manager_job.rb +2 -2
  10. data/lib/duodealer_app/version.rb +1 -1
  11. data/lib/generators/duodealer_app/install/templates/duodealer_provider.rb +0 -2
  12. data/lib/generators/duodealer_app/rotate_duodealer_token_job/templates/rotate_duodealer_token_job.rb +7 -7
  13. metadata +2 -18
  14. data/app/controllers/concerns/duodealer_app/authenticated.rb-e +0 -15
  15. data/app/controllers/duodealer_app/authenticated_controller.rb-e +0 -9
  16. data/app/controllers/duodealer_app/callback_controller.rb-e +0 -104
  17. data/app/controllers/duodealer_app/extension_verification_controller.rb-e +0 -19
  18. data/app/controllers/duodealer_app/sessions_controller.rb-e +0 -159
  19. data/app/controllers/duodealer_app/webhooks_controller.rb-e +0 -37
  20. data/app/views/duodealer_app/partials/_button_styles.html.erb-e +0 -104
  21. data/app/views/duodealer_app/partials/_card_styles.html.erb-e +0 -33
  22. data/app/views/duodealer_app/partials/_empty_state_styles.html.erb-e +0 -129
  23. data/app/views/duodealer_app/partials/_layout_styles.html.erb-e +0 -167
  24. data/app/views/duodealer_app/partials/_typography_styles.html.erb-e +0 -35
  25. data/app/views/duodealer_app/sessions/enable_cookies.html.erb-e +0 -75
  26. data/app/views/duodealer_app/sessions/new.html.erb-e +0 -123
  27. data/app/views/duodealer_app/sessions/request_storage_access.html.erb-e +0 -68
  28. data/app/views/duodealer_app/sessions/top_level_interaction.html.erb-e +0 -64
  29. data/app/views/duodealer_app/shared/redirect.html.erb-e +0 -23
@@ -1,75 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="<%= I18n.locale %>">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <base target="_top">
7
- <title>Redirecting…</title>
8
- <%= render 'duodealer_app/partials/layout_styles' %>
9
- <%= render 'duodealer_app/partials/typography_styles' %>
10
- <%= render 'duodealer_app/partials/card_styles' %>
11
- <%= render 'duodealer_app/partials/button_styles' %>
12
- <style>
13
- #CookiePartitionPrompt {
14
- display: none;
15
- }
16
- </style>
17
- <script>
18
- window.apiKey = "<%= DuodealerApp.configuration.api_key %>";
19
- window.shopOrigin = "https://<%= @shop %>";
20
- window.returnTo = "<%= params[:return_to] %>"
21
- </script>
22
-
23
- <%= javascript_include_tag('duodealer_app/enable_cookies', crossorigin: 'anonymous', integrity: true) %>
24
- </head>
25
- <body>
26
- <%=
27
- content_tag(
28
- :div, nil,
29
- id: 'redirection-target',
30
- data: {
31
- target: {
32
- duodealerUrl: "https://#{current_duodealer_domain}",
33
- hasStorageAccessUrl: "#{has_storage_access_url}",
34
- doesNotHaveStorageAccessUrl: "#{does_not_have_storage_access_url}",
35
- appTargetUrl: "#{app_target_url}"
36
- },
37
- },
38
- )
39
- %>
40
- <main id="CookiePartitionPrompt">
41
- <div class="Polaris-Page">
42
- <div class="Polaris-Page__Content">
43
- <div class="Polaris-Layout">
44
- <div class="Polaris-Layout__Section">
45
- <div class="Polaris-Stack Polaris-Stack--vertical">
46
- <div class="Polaris-Stack__Item">
47
- <div class="Polaris-Card">
48
- <div class="Polaris-Card__Header">
49
- <h1 class="Polaris-Heading"><%= I18n.t('enable_cookies_heading', app: DuodealerApp.configuration.application_name) %></h1>
50
- </div>
51
- <div class="Polaris-Card__Section">
52
- <p><%= I18n.t('enable_cookies_body', app: DuodealerApp.configuration.application_name) %></p>
53
- </div>
54
- <div class="Polaris-Card__Section Polaris-Card__Section--subdued">
55
- <p><%= I18n.t('enable_cookies_footer') %></p>
56
- </div>
57
- </div>
58
- </div>
59
- <div class="Polaris-Stack__Item">
60
- <div class="Polaris-Stack Polaris-Stack--distributionTrailing">
61
- <div class="Polaris-Stack__Item">
62
- <button type="button" class="Polaris-Button Polaris-Button--primary" id="AcceptCookies">
63
- <span class="Polaris-Button__Content"><span><%= I18n.t('enable_cookies_action') %></span></span>
64
- </button>
65
- </div>
66
- </div>
67
- </div>
68
- </div>
69
- </div>
70
- </div>
71
- </div>
72
- </div>
73
- </main>
74
- </body>
75
- </html>
@@ -1,123 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <title>Duo Dealer App — Installation</title>
5
-
6
- <meta http-equiv="x-ua-compatible" content="ie=edge">
7
- <meta name="viewport" content="width=device-width, initial-scale=1">
8
-
9
- <style>
10
- * {
11
- -moz-box-sizing: border-box;
12
- -webkit-box-sizing: border-box;
13
- box-sizing: border-box;
14
- }
15
-
16
- body {
17
- padding: 2.5em 0;
18
- color: #212b37;
19
- font-family: -apple-system,BlinkMacSystemFont,San Francisco,Roboto,Segoe UI,Helvetica Neue,sans-serif;
20
- }
21
-
22
- .container {
23
- width: 100%;
24
- text-align: center;
25
- margin-left: auto;
26
- margin-right: auto;
27
- }
28
-
29
- @media screen and (min-width: 510px) {
30
- .container {
31
- width: 510px;
32
- }
33
- }
34
-
35
- .title {
36
- font-size: 1.5em;
37
- margin: 2em auto;
38
- display: flex;
39
- align-items: center;
40
- justify-content: center;
41
- word-break: break-all;
42
- }
43
-
44
- .subtitle {
45
- font-size: 0.8em;
46
- font-weight: 500;
47
- color: #64737f;
48
- line-height: 2em;
49
- }
50
-
51
- .error {
52
- line-height: 1em;
53
- padding: 0.5em;
54
- color: red;
55
- }
56
-
57
- input.marketing-input {
58
- width: 100%;
59
- height: 52px;
60
- padding: 0 15px;
61
- box-shadow: 0 0 0 1px #ddd;
62
- border: 0;
63
- border-radius: 5px;
64
- background-color: #fff;
65
- font-size: 1em;
66
- margin-bottom: 15px;
67
- }
68
-
69
- input.marketing-input:focus {
70
- color: #000;
71
- outline: 0;
72
- box-shadow: 0 0 0 2px #5e6ebf;
73
- }
74
-
75
- button.marketing-button {
76
- display: inline-block;
77
- width: 100%;
78
- padding: 1.0625em 1.875em;
79
- background-color: #5e6ebf;
80
- color: #fff;
81
- font-weight: 700;
82
- font-size: 1em;
83
- text-align: center;
84
- outline: none;
85
- border: 0 solid transparent;
86
- border-radius: 5px;
87
- cursor: pointer;
88
- }
89
-
90
- button.marketing-button:hover {
91
- background: linear-gradient(to bottom, #5c6ac4, #4959bd);
92
- border-color: #3f4eae;
93
- }
94
-
95
- button.marketing-button:focus {
96
- box-shadow: 0 0 0.1875em 0.1875em rgba(94,110,191,0.5);
97
- background-color: #223274;
98
- color: #fff;
99
- }
100
- </style>
101
- </head>
102
- <body>
103
-
104
- <main class="container" role="main">
105
- <% application_name = DuodealerApp.configuration.application_name %>
106
- <h3 class="title">
107
- <%= application_name.presence || 'Duo Dealer App – Installation' %>
108
- </h3>
109
- <p class="subtitle">
110
- <label for="shop">Enter your shop domain to log in or install this app.</label>
111
- </p>
112
-
113
- <%= form_tag login_path do %>
114
- <% if flash[:error] %>
115
- <div class="error"><%= flash[:error] %></div>
116
- <% end %>
117
- <input id="shop" name="shop" type="text" autofocus="autofocus" placeholder="example.duodealer.com" class="marketing-input">
118
- <button type="submit" class="marketing-button">Install</button>
119
- <% end %>
120
- </main>
121
-
122
- </body>
123
- </html>
@@ -1,68 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="<%= I18n.locale %>">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <base target="_top">
7
- <title>Redirecting…</title>
8
- <%= render 'duodealer_app/partials/layout_styles' %>
9
- <%= render 'duodealer_app/partials/typography_styles' %>
10
- <%= render 'duodealer_app/partials/card_styles' %>
11
- <%= render 'duodealer_app/partials/button_styles' %>
12
- <style>
13
- #RequestStorageAccess {
14
- display: none;
15
- }
16
- </style>
17
- </head>
18
- <body>
19
- <%=
20
- content_tag(:div, nil,
21
- id: 'redirection-target',
22
- data: {
23
- target: {
24
- duodealerUrl: "https://#{current_duodealer_domain}",
25
- hasStorageAccessUrl: "#{has_storage_access_url}",
26
- doesNotHaveStorageAccessUrl: "#{does_not_have_storage_access_url}",
27
- appTargetUrl: "#{app_target_url}"
28
- },
29
- },
30
- )
31
- %>
32
- <main id="RequestStorageAccess">
33
- <div class="Polaris-Page">
34
- <div class="Polaris-Page__Content">
35
- <div class="Polaris-Layout">
36
- <div class="Polaris-Layout__Section">
37
- <div class="Polaris-Stack Polaris-Stack--vertical">
38
- <div class="Polaris-Stack__Item">
39
- <div class="Polaris-Card">
40
- <div class="Polaris-Card__Header">
41
- <h1 class="Polaris-Heading"><%= I18n.t('request_storage_access_heading', app: DuodealerApp.configuration.application_name) %></h1>
42
- </div>
43
- <div class="Polaris-Card__Section">
44
- <p><%= I18n.t('request_storage_access_body', app: DuodealerApp.configuration.application_name) %></p>
45
- </div>
46
- <div class="Polaris-Card__Section Polaris-Card__Section--subdued">
47
- <p><%= I18n.t('request_storage_access_footer') %></p>
48
- </div>
49
- </div>
50
- </div>
51
- <div class="Polaris-Stack__Item">
52
- <div class="Polaris-Stack Polaris-Stack--distributionTrailing">
53
- <div class="Polaris-Stack__Item">
54
- <button type="button" class="Polaris-Button Polaris-Button--primary" id="TriggerAllowCookiesPrompt">
55
- <span class="Polaris-Button__Content"><span><%= I18n.t('request_storage_access_action') %></span></span>
56
- </button>
57
- </div>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
- </div>
64
- </div>
65
- </main>
66
- <%= javascript_include_tag('duodealer_app/request_storage_access', crossorigin: 'anonymous', integrity: true) %>
67
- </body>
68
- </html>
@@ -1,64 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="<%= I18n.locale %>">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <base target="_top">
7
- <title>Redirecting…</title>
8
- <%= render 'duodealer_app/partials/layout_styles' %>
9
- <%= render 'duodealer_app/partials/typography_styles' %>
10
- <%= render 'duodealer_app/partials/button_styles' %>
11
- <%= render 'duodealer_app/partials/empty_state_styles' %>
12
- <style>
13
- #TopLevelInteractionContent {
14
- display: none;
15
- }
16
- </style>
17
-
18
- <script>
19
- window.apiKey = "<%= DuodealerApp.configuration.api_key %>";
20
- window.shopOrigin = "https://<%= @shop %>";
21
- window.redirectUrl = "<%= @url %>";
22
- </script>
23
-
24
- <%= javascript_include_tag('duodealer_app/top_level', crossorigin: 'anonymous', integrity: true) %>
25
- </head>
26
- <body>
27
- <main id="TopLevelInteractionContent">
28
- <div class="Polaris-Page">
29
- <div class="Polaris-Page__Content">
30
- <div class="Polaris-Layout">
31
- <div class="Polaris-Layout__Section">
32
- <div class="Polaris-Stack Polaris-Stack--vertical">
33
- <div class="Polaris-Stack__Item">
34
- <div class="Polaris-EmptyState">
35
- <div class="Polaris-EmptyState__Section">
36
- <div class="Polaris-EmptyState__DetailsContainer">
37
- <div class="Polaris-EmptyState__Details">
38
- <div class="Polaris-TextContainer">
39
- <h1 class="Polaris-DisplayText Polaris-DisplayText--sizeMedium"><%= I18n.t('top_level_interaction_heading', app: DuodealerApp.configuration.application_name) %></h1>
40
- <div class="Polaris-EmptyState__Content">
41
- <p><%= I18n.t('top_level_interaction_body', app: DuodealerApp.configuration.application_name) %></p>
42
- </div>
43
- </div>
44
- <div class="Polaris-EmptyState__Actions">
45
- <div class="Polaris-Stack Polaris-Stack--alignmentCenter">
46
- <div class="Polaris-Stack__Item"><button type="button" id="TopLevelInteractionButton" class="Polaris-Button Polaris-Button--primary Polaris-Button--sizeLarge"><span class="Polaris-Button__Content"><span class="Polaris-Button__Icon"></span><span><%= I18n.t('top_level_interaction_action') %></span></span></button></div>
47
- </div>
48
- </div>
49
- </div>
50
- </div>
51
- <div class="Polaris-EmptyState__ImageContainer">
52
- <%= image_tag 'storage_access.svg', role: "presentation", alt: "", class: "Polaris-EmptyState__Image" %>
53
- </div>
54
- </div>
55
- </div>
56
- </div>
57
- </div>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- </main>
63
- </body>
64
- </html>
@@ -1,23 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <base target="_top">
7
- <title>Redirecting…</title>
8
- <%= javascript_include_tag('duodealer_app/redirect', crossorigin: 'anonymous', integrity: true) %>
9
- </head>
10
- <body>
11
- <%=
12
- content_tag(:div, nil,
13
- id: 'redirection-target',
14
- data: {
15
- target: {
16
- duodealerUrl: "https://#{current_duodealer_domain}",
17
- url: url,
18
- },
19
- },
20
- )
21
- %>
22
- </body>
23
- </html>