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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f11577e97ce556432a30d08b8ba74a6445bc9b1e5da0a3142f635f446244c3fc
4
- data.tar.gz: cc3738902c861b0458d22fcdbb3488ffe1175c814e0368c763d6d8e84ec2104e
3
+ metadata.gz: 189efdfc12095ce801281491b882dc6021d9130efb803da0cf801d60fbb40566
4
+ data.tar.gz: 86a4030818ec3c5b051acaa1a750155bad4be7c29c6bd8fd13ec41bfb2cae6f7
5
5
  SHA512:
6
- metadata.gz: e55018d02461c0dde121202e00fa9417c293422bb4fb937c94ecb669b6ecfcb7eccd7432660883c1c629e92b45b7a0d0de947fec9837ac9e1e3995526351d327
7
- data.tar.gz: 4ddf7fd7661186ba14ce8d2cfc2179b9627e1249cf7cbedc675ca32fac2c58b76e808ebc2f6d476ac41fc87a624f49cc66a493327068cd7ec064463cb1031d29
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
@@ -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: 15)
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" => "1",
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" => "Default layout by Queue-it",
122
+ "CustomLayout" => custom_layout,
121
123
  "XUsersInFrontOfYou" => nil,
122
124
  "TargetUrlValidationRegex" => "",
123
125
  "DomainAlias" => "",
@@ -15,18 +15,18 @@ module QueueIt
15
15
  end
16
16
 
17
17
  def queue_it_queue_id(event_id)
18
- session[queue_it_session_variable(event_id)].to_i
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
- session.keys.select{ |session_key| session_key.start_with?(session_variable_prefix) }.each do |key|
24
- session.delete(key)
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
- session.delete(queue_it_session_variable(event_id))
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 session[queue_it_session_variable(event_id)].present?
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
- session[queue_it_session_variable(event_id)] = queue_number
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
@@ -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
- "http://q.queue-it.net/?c=#{customer_id}&e=#{event_id}&t=#{CGI.escape(redirect_url)}"
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
- "http://q.queue-it.net/cancel.aspx?c=#{customer_id}&e=#{event_id}&q=#{queue_id}"
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
@@ -1,3 +1,3 @@
1
1
  module QueueIt
2
- VERSION = "2.0.0"
2
+ VERSION = "3.0.1"
3
3
  end
@@ -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) { 15 }
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: 2.0.0
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: 2020-10-29 00:00:00.000000000 Z
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.0.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: