queue_it 1.1.7 → 2.0.2
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 +5 -5
- data/.rbenv-gemsets +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/queue_it/api/client.rb +5 -4
- data/lib/queue_it/api/event.rb +8 -6
- data/lib/queue_it/url_builder.rb +2 -2
- data/lib/queue_it/version.rb +1 -1
- data/queue_it.gemspec +3 -3
- data/spec/queue_it/api/client_spec.rb +3 -3
- data/spec/queue_it/api/event_spec.rb +6 -7
- metadata +23 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 11e2e993d7d7786358079cd70de8f3e0c5937e5b17838dbf018885aac63b3aab
|
4
|
+
data.tar.gz: c96be7f3a372d1259f431fb803588a1377edee8552454572ec245c924b7d8523
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '009611414e2b920b4e3fb84a9b62fbd79957f6ba3454a966218e30c299afb051ca60afff1fa1910a852176b01e3f6d9b483b43e023913f9ec8a4ea36dd45f0e5'
|
7
|
+
data.tar.gz: 452e61cfdfd7a168d752cf5e687347c45ddbc740b751160428e605a7ff7a21115572867331ff39ecaea240cee20f7d36862c80e5e4ab2f9aaa46c347d476aecc
|
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,19 @@
|
|
1
|
+
### 2.0.2 - 2021-07-21
|
2
|
+
|
3
|
+
* Defaults changed when creating/updating a queue: CustomLayout set to dark theme, MaxNoOfRedirectsPrQueueId to 3, QueueNumberValidityInMinutes to 30.
|
4
|
+
* UseSSL parameter is no longer sent since the use of https will be enforced.
|
5
|
+
|
6
|
+
### 2.0.1 - 2021-04-26
|
7
|
+
|
8
|
+
* Updated the queue and cancel URL from `q.queue-it.net` to `customer_id.queue-it.net`.
|
9
|
+
* Updated the queue URLs to use https.
|
10
|
+
|
11
|
+
### 2.0.0 - 2020-10-29
|
12
|
+
|
13
|
+
* A customer ID is needed to create a client instance
|
14
|
+
* Always include the Customer ID in the API request URL
|
15
|
+
* Bump webmock to properly handle Ruby 2.4+
|
16
|
+
|
1
17
|
### 1.1.6 - 2017-03-15
|
2
18
|
|
3
19
|
* Now by default, during creation event, we support using redirect urls
|
data/README.md
CHANGED
data/lib/queue_it/api/client.rb
CHANGED
@@ -8,11 +8,12 @@ module QueueIt
|
|
8
8
|
module Api
|
9
9
|
class Client
|
10
10
|
JSON_FORMAT = "application/json".freeze
|
11
|
-
ENDPOINT_URL = URI("https://api2.queue-it.net/2_0/event").freeze
|
12
11
|
|
13
|
-
def initialize(api_key: nil, debug: false)
|
12
|
+
def initialize(customer_id, api_key: nil, debug: false)
|
13
|
+
self.customer_id = customer_id
|
14
14
|
self.api_key = api_key
|
15
15
|
self.debug = debug
|
16
|
+
self.endpoint = URI("https://#{customer_id}.api2.queue-it.net/2_0/event")
|
16
17
|
end
|
17
18
|
|
18
19
|
def put(path, body)
|
@@ -21,11 +22,11 @@ module QueueIt
|
|
21
22
|
|
22
23
|
private
|
23
24
|
|
24
|
-
attr_accessor :api_key, :debug
|
25
|
+
attr_accessor :api_key, :customer_id, :debug, :endpoint
|
25
26
|
|
26
27
|
def options
|
27
28
|
{
|
28
|
-
url:
|
29
|
+
url: endpoint.dup,
|
29
30
|
headers: {
|
30
31
|
accept: JSON_FORMAT,
|
31
32
|
content_type: JSON_FORMAT,
|
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/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
data/queue_it.gemspec
CHANGED
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "addressable", "~> 2.3"
|
22
|
-
spec.add_runtime_dependency "faraday", "
|
23
|
-
spec.add_runtime_dependency "faraday_middleware", "
|
22
|
+
spec.add_runtime_dependency "faraday", "<= 2.0", ">= 0.9"
|
23
|
+
spec.add_runtime_dependency "faraday_middleware", "<= 2.0", ">= 0.9"
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.2"
|
27
|
-
spec.add_development_dependency "webmock", "~>
|
27
|
+
spec.add_development_dependency "webmock", "~> 3.3"
|
28
28
|
end
|
@@ -5,7 +5,7 @@ require 'queue_it/api/client'
|
|
5
5
|
module QueueIt
|
6
6
|
module Api
|
7
7
|
describe Client do
|
8
|
-
subject(:client) {
|
8
|
+
subject(:client) { Client.new("customerid", api_key: "SECURE_KEY") }
|
9
9
|
|
10
10
|
specify "PUT data under given endpoint & path in JSON format" do
|
11
11
|
request_hash = { "Request" => true }
|
@@ -71,7 +71,7 @@ module QueueIt
|
|
71
71
|
end
|
72
72
|
|
73
73
|
specify "debugging mode puts to STDOUT" do
|
74
|
-
client = Client.new(api_key: "SECURE_KEY", debug: true)
|
74
|
+
client = Client.new("customerid", api_key: "SECURE_KEY", debug: true)
|
75
75
|
|
76
76
|
request_hash = { "Request" => true }
|
77
77
|
|
@@ -83,7 +83,7 @@ module QueueIt
|
|
83
83
|
private
|
84
84
|
|
85
85
|
def endpoint_url
|
86
|
-
|
86
|
+
"https://customerid.api2.queue-it.net/2_0/event/fancy_event"
|
87
87
|
end
|
88
88
|
|
89
89
|
def stub_request_factory(method: :put, status: 200, request_body: "{}", response_body: "{}", content_type: "application/json")
|
@@ -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:{}))
|
@@ -108,12 +108,12 @@ module QueueIt
|
|
108
108
|
end
|
109
109
|
|
110
110
|
specify "Request hits proper endpoint" do
|
111
|
-
client = Client.new(api_key: "SECURE_KEY")
|
111
|
+
client = Client.new("customerid", api_key: "SECURE_KEY")
|
112
112
|
event_adapter = Event.new(client)
|
113
113
|
|
114
114
|
body = JSON.generate(valid_create_body)
|
115
115
|
|
116
|
-
stub = stub_request(:put, "https://api2.queue-it.net/2_0/event/fancyevent")
|
116
|
+
stub = stub_request(:put, "https://customerid.api2.queue-it.net/2_0/event/fancyevent")
|
117
117
|
.with(body: body, headers: headers)
|
118
118
|
|
119
119
|
event_adapter.create_or_update(event_id: event_id,
|
@@ -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",
|
@@ -165,13 +164,13 @@ module QueueIt
|
|
165
164
|
end
|
166
165
|
|
167
166
|
context "#set_speed" do
|
168
|
-
let(:client) { Client.new(api_key: "SECURE_KEY") }
|
167
|
+
let(:client) { Client.new("customerid", api_key: "SECURE_KEY") }
|
169
168
|
let(:max_redirects_per_minute) { 15 }
|
170
169
|
|
171
170
|
specify "Proper speed value is set" do
|
172
171
|
body = { "MaxRedirectsPerMinute" => "15" }
|
173
172
|
|
174
|
-
stub = stub_request(:put, "https://api2.queue-it.net/2_0/event/fancyevent/queue/speed")
|
173
|
+
stub = stub_request(:put, "https://customerid.api2.queue-it.net/2_0/event/fancyevent/queue/speed")
|
175
174
|
.with(body: body, headers: headers)
|
176
175
|
|
177
176
|
event_adapter.set_speed(event_id: event_id, max_redirects_per_minute: max_redirects_per_minute)
|
@@ -182,7 +181,7 @@ module QueueIt
|
|
182
181
|
specify "Speed must be greater than 5 so we send at least 5" do
|
183
182
|
expected_body = { "MaxRedirectsPerMinute" => "5" }
|
184
183
|
|
185
|
-
stub = stub_request(:put, "https://api2.queue-it.net/2_0/event/fancyevent/queue/speed")
|
184
|
+
stub = stub_request(:put, "https://customerid.api2.queue-it.net/2_0/event/fancyevent/queue/speed")
|
186
185
|
.with(body: expected_body, headers: headers)
|
187
186
|
|
188
187
|
event_adapter.set_speed(event_id: event_id, max_redirects_per_minute: 1)
|
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: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Billetto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -28,28 +28,40 @@ dependencies:
|
|
28
28
|
name: faraday
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "<="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
- - ">="
|
32
35
|
- !ruby/object:Gem::Version
|
33
36
|
version: '0.9'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- - "
|
41
|
+
- - "<="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '2.0'
|
44
|
+
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
46
|
version: '0.9'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: faraday_middleware
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - "<="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2.0'
|
54
|
+
- - ">="
|
46
55
|
- !ruby/object:Gem::Version
|
47
56
|
version: '0.9'
|
48
57
|
type: :runtime
|
49
58
|
prerelease: false
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
|
-
- - "
|
61
|
+
- - "<="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '2.0'
|
64
|
+
- - ">="
|
53
65
|
- !ruby/object:Gem::Version
|
54
66
|
version: '0.9'
|
55
67
|
- !ruby/object:Gem::Dependency
|
@@ -86,14 +98,14 @@ dependencies:
|
|
86
98
|
requirements:
|
87
99
|
- - "~>"
|
88
100
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
101
|
+
version: '3.3'
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
93
105
|
requirements:
|
94
106
|
- - "~>"
|
95
107
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
108
|
+
version: '3.3'
|
97
109
|
description: Gem to handle the implementation of http://queue-it.net!
|
98
110
|
email:
|
99
111
|
- development@billetto.dk
|
@@ -102,6 +114,8 @@ extensions: []
|
|
102
114
|
extra_rdoc_files: []
|
103
115
|
files:
|
104
116
|
- ".gitignore"
|
117
|
+
- ".rbenv-gemsets"
|
118
|
+
- ".ruby-version"
|
105
119
|
- CHANGELOG.md
|
106
120
|
- Gemfile
|
107
121
|
- LICENSE.txt
|
@@ -142,8 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
156
|
- !ruby/object:Gem::Version
|
143
157
|
version: '0'
|
144
158
|
requirements: []
|
145
|
-
|
146
|
-
rubygems_version: 2.6.14.4
|
159
|
+
rubygems_version: 3.1.2
|
147
160
|
signing_key:
|
148
161
|
specification_version: 4
|
149
162
|
summary: Gem to handle the implementation of http://queue-it.net
|