queue_it 2.0.0 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|