queue_it 2.0.0 → 3.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.
- checksums.yaml +4 -4
- data/.rbenv-gemsets +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +18 -0
- data/lib/queue_it/api/event.rb +8 -6
- data/lib/queue_it/queueable.rb +6 -6
- data/lib/queue_it/url_builder.rb +2 -2
- data/lib/queue_it/version.rb +1 -1
- data/spec/queue_it/api/event_spec.rb +1 -2
- metadata +20 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 189efdfc12095ce801281491b882dc6021d9130efb803da0cf801d60fbb40566
|
4
|
+
data.tar.gz: 86a4030818ec3c5b051acaa1a750155bad4be7c29c6bd8fd13ec41bfb2cae6f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d42cba553cc208237128084c89f54cbdbe9c055bcf885fdbef81d48d29bca1a1b8ff7c77ffcdb52604f9af21bc11f4ca2856cb2e73c3ee1f27d58de60d53b7f
|
7
|
+
data.tar.gz: 56a32eb9cecc4167b05e014b88754cc235137eed24160cdd18eacb8ad7090cc7d1fa75b8793f9dfdbd7ebd1fcf65661d026a44569ca28d4a9dc6541d701c4c07
|
data/.rbenv-gemsets
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
queue-it
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7.1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
### 3.0.1 - 2021-08-01
|
2
|
+
|
3
|
+
* Correctly delete cookies when a session is destroyed
|
4
|
+
|
5
|
+
### 3.0.0 - 2021-07-30
|
6
|
+
|
7
|
+
* Replace session store with cookie store to prevent some users of being kicked out of the queue
|
8
|
+
|
9
|
+
### 2.0.2 - 2021-07-21
|
10
|
+
|
11
|
+
* Defaults changed when creating/updating a queue: CustomLayout set to dark theme, MaxNoOfRedirectsPrQueueId to 3, QueueNumberValidityInMinutes to 30.
|
12
|
+
* UseSSL parameter is no longer sent since the use of https will be enforced.
|
13
|
+
|
14
|
+
### 2.0.1 - 2021-04-26
|
15
|
+
|
16
|
+
* Updated the queue and cancel URL from `q.queue-it.net` to `customer_id.queue-it.net`.
|
17
|
+
* Updated the queue URLs to use https.
|
18
|
+
|
1
19
|
### 2.0.0 - 2020-10-29
|
2
20
|
|
3
21
|
* A customer ID is needed to create a client instance
|
data/lib/queue_it/api/event.rb
CHANGED
@@ -11,7 +11,7 @@ module QueueIt
|
|
11
11
|
self.client = client
|
12
12
|
end
|
13
13
|
|
14
|
-
def create_or_update(event_id:, display_name:, start_time:, pre_queue_start_time:nil, know_user_secret_key: nil, redirect_url:, end_time: nil, description: "", event_culture_name: "en-US", time_zone: "UTC", queue_number_validity_in_minutes:
|
14
|
+
def create_or_update(event_id:, display_name:, start_time:, pre_queue_start_time:nil, know_user_secret_key: nil, redirect_url:, end_time: nil, description: "", event_culture_name: "en-US", time_zone: "UTC", queue_number_validity_in_minutes: 30, max_no_of_redirects: 1, custom_layout: "Default layout by Queue-it")
|
15
15
|
raise InvalidEventIdFormat unless valid_event_id_format?(event_id)
|
16
16
|
|
17
17
|
attributes = queue_attributes(
|
@@ -24,7 +24,10 @@ module QueueIt
|
|
24
24
|
display_name: display_name,
|
25
25
|
event_culture_name: event_culture_name,
|
26
26
|
queue_number_validity_in_minutes: queue_number_validity_in_minutes,
|
27
|
-
time_zone: time_zone
|
27
|
+
time_zone: time_zone,
|
28
|
+
max_no_of_redirects: max_no_of_redirects,
|
29
|
+
custom_layout: custom_layout
|
30
|
+
)
|
28
31
|
|
29
32
|
perform_request(:put, event_id, attributes)
|
30
33
|
end
|
@@ -97,7 +100,7 @@ module QueueIt
|
|
97
100
|
MICROSOFT_TIME_ZONE_INDEX_VALUES.fetch(time_zone, time_zone)
|
98
101
|
end
|
99
102
|
|
100
|
-
def queue_attributes(pre_queue_start_time:, start_time:, end_time:, know_user_secret_key:, redirect_url:, description:, display_name:, event_culture_name:, queue_number_validity_in_minutes:, time_zone:)
|
103
|
+
def queue_attributes(pre_queue_start_time:, start_time:, end_time:, know_user_secret_key:, redirect_url:, description:, display_name:, event_culture_name:, queue_number_validity_in_minutes:, time_zone:, max_no_of_redirects:, custom_layout:)
|
101
104
|
{
|
102
105
|
"DisplayName" => display_name,
|
103
106
|
"RedirectUrl" => URI(redirect_url).to_s,
|
@@ -107,17 +110,16 @@ module QueueIt
|
|
107
110
|
"EventStartTime" => format_time( utc_start_time(start_time) ),
|
108
111
|
"EventEndTime" => format_time( utc_end_time(start_time, end_time) ),
|
109
112
|
"EventCulture" => event_culture_name,
|
110
|
-
"MaxNoOfRedirectsPrQueueId" => "
|
113
|
+
"MaxNoOfRedirectsPrQueueId" => "#{max_no_of_redirects}",
|
111
114
|
"QueueNumberValidityInMinutes" => "#{queue_number_validity_in_minutes}",
|
112
115
|
"AfterEventLogic" => "RedirectUsersToTargetPage",
|
113
116
|
"AfterEventRedirectPage" => "",
|
114
|
-
"UseSSL" => "Auto",
|
115
117
|
"JavaScriptSupportEnabled" => "False",
|
116
118
|
"TargetUrlSupportEnabled" => "True",
|
117
119
|
"SafetyNetMode" => "Disabled",
|
118
120
|
"KnowUserSecurity" => "MD5Hash",
|
119
121
|
"KnowUserSecretKey" => know_user_secret_key,
|
120
|
-
"CustomLayout" =>
|
122
|
+
"CustomLayout" => custom_layout,
|
121
123
|
"XUsersInFrontOfYou" => nil,
|
122
124
|
"TargetUrlValidationRegex" => "",
|
123
125
|
"DomainAlias" => "",
|
data/lib/queue_it/queueable.rb
CHANGED
@@ -15,18 +15,18 @@ module QueueIt
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def queue_it_queue_id(event_id)
|
18
|
-
|
18
|
+
cookies.signed[queue_it_session_variable(event_id)].to_i
|
19
19
|
end
|
20
20
|
|
21
21
|
def destroy_all_queue_it_sessions
|
22
22
|
session_variable_prefix = queue_it_session_variable("")
|
23
|
-
|
24
|
-
|
23
|
+
cookies.each do |key, _|
|
24
|
+
cookies.delete(key) if key.starts_with?(session_variable_prefix)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
def destroy_queue_it_session(event_id)
|
29
|
-
|
29
|
+
cookies.delete(queue_it_session_variable(event_id))
|
30
30
|
end
|
31
31
|
|
32
32
|
def queue_it_session_variable(event_id)
|
@@ -37,14 +37,14 @@ module QueueIt
|
|
37
37
|
|
38
38
|
def create_or_verify_queue_it_session(secret_key, event_id, customer_id, request_url, params, current_tickets_url)
|
39
39
|
# If there exists a session, we return. This needs to be refactored when we start to look at the timestamp parameter
|
40
|
-
return if
|
40
|
+
return if cookies.signed[queue_it_session_variable(event_id)].present?
|
41
41
|
|
42
42
|
begin
|
43
43
|
queue_number = QueueIt::ExtractQueueNumber.new.(
|
44
44
|
secret_key: secret_key,
|
45
45
|
request_url: request_url,
|
46
46
|
request_params: params)
|
47
|
-
|
47
|
+
cookies.signed[queue_it_session_variable(event_id)] = { value: queue_number, expires: 24.hours.from_now }
|
48
48
|
|
49
49
|
# If the request URL contains queue_it params we remove them and redirect
|
50
50
|
# this is done to mask the params we use to create and verify the queue_it session
|
data/lib/queue_it/url_builder.rb
CHANGED
@@ -3,11 +3,11 @@ require 'addressable/uri'
|
|
3
3
|
module QueueIt
|
4
4
|
class UrlBuilder
|
5
5
|
def self.build_queue_url(customer_id, event_id, redirect_url)
|
6
|
-
"
|
6
|
+
"https://#{customer_id}.queue-it.net/?c=#{customer_id}&e=#{event_id}&t=#{CGI.escape(redirect_url)}"
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.build_cancel_url(customer_id, event_id, queue_id = nil)
|
10
|
-
"
|
10
|
+
"https://#{customer_id}.queue-it.net/cancel.aspx?c=#{customer_id}&e=#{event_id}&q=#{queue_id}"
|
11
11
|
end
|
12
12
|
|
13
13
|
# Removes all queue_it params from URL
|
data/lib/queue_it/version.rb
CHANGED
@@ -20,7 +20,7 @@ module QueueIt
|
|
20
20
|
let(:pre_queue_start_time) { Time.new(2015,04,28,15,25,46, "+02:00") }
|
21
21
|
let(:start_time) { Time.new(2015,04,28,17,25,46, "+02:00") }
|
22
22
|
let(:end_time) { Time.new(2015,04,28,21,25,46, "+02:00") }
|
23
|
-
let(:queue_number_validity_in_minutes) {
|
23
|
+
let(:queue_number_validity_in_minutes) { 30 }
|
24
24
|
|
25
25
|
specify "Submits proper request" do
|
26
26
|
expect(client).to receive(:put).with(event_id, valid_create_body).and_return(double(body:{}))
|
@@ -146,7 +146,6 @@ module QueueIt
|
|
146
146
|
"QueueNumberValidityInMinutes" => "#{queue_number_validity_in_minutes}",
|
147
147
|
"AfterEventLogic" => "RedirectUsersToTargetPage",
|
148
148
|
"AfterEventRedirectPage" => "",
|
149
|
-
"UseSSL" => "Auto",
|
150
149
|
"JavaScriptSupportEnabled" => "False",
|
151
150
|
"TargetUrlSupportEnabled" => "True",
|
152
151
|
"SafetyNetMode" => "Disabled",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: queue_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Billetto
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -28,42 +28,42 @@ dependencies:
|
|
28
28
|
name: faraday
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0.9'
|
34
31
|
- - "<="
|
35
32
|
- !ruby/object:Gem::Version
|
36
33
|
version: '2.0'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0.9'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '0.9'
|
44
41
|
- - "<="
|
45
42
|
- !ruby/object:Gem::Version
|
46
43
|
version: '2.0'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.9'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: faraday_middleware
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0.9'
|
54
51
|
- - "<="
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: '2.0'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0.9'
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - ">="
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '0.9'
|
64
61
|
- - "<="
|
65
62
|
- !ruby/object:Gem::Version
|
66
63
|
version: '2.0'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0.9'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: bundler
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,6 +114,8 @@ extensions: []
|
|
114
114
|
extra_rdoc_files: []
|
115
115
|
files:
|
116
116
|
- ".gitignore"
|
117
|
+
- ".rbenv-gemsets"
|
118
|
+
- ".ruby-version"
|
117
119
|
- CHANGELOG.md
|
118
120
|
- Gemfile
|
119
121
|
- LICENSE.txt
|
@@ -139,7 +141,7 @@ homepage: https://github.com/gfish/queue_it
|
|
139
141
|
licenses:
|
140
142
|
- GNU/GPLv3
|
141
143
|
metadata: {}
|
142
|
-
post_install_message:
|
144
|
+
post_install_message:
|
143
145
|
rdoc_options: []
|
144
146
|
require_paths:
|
145
147
|
- lib
|
@@ -154,8 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
156
|
- !ruby/object:Gem::Version
|
155
157
|
version: '0'
|
156
158
|
requirements: []
|
157
|
-
rubygems_version: 3.
|
158
|
-
signing_key:
|
159
|
+
rubygems_version: 3.1.2
|
160
|
+
signing_key:
|
159
161
|
specification_version: 4
|
160
162
|
summary: Gem to handle the implementation of http://queue-it.net
|
161
163
|
test_files:
|