prioticket 0.1.0 → 0.1.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 +4 -4
- data/README.md +12 -0
- data/lib/prioticket.rb +11 -14
- data/lib/prioticket/api.rb +2 -1
- data/lib/prioticket/booking.rb +5 -2
- data/lib/prioticket/reservation.rb +17 -0
- data/lib/prioticket/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d659c0c31f33dc4aaaaffd3f544483e266bf1047
|
4
|
+
data.tar.gz: a5ef93472f859709ddd626cd38c80d81fbeb1824
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8542437198a31aff0a74f0353f00079ccac003c79b05566c6c9b9670cbf7340528530539111e204ddaa25ac15ad2b4f2279b8b06c4ce5f99ecd03472602b5c3
|
7
|
+
data.tar.gz: cdff7e65a59fd24f124404d24f07ae85d64b0fbfac2d5c7a4e8b9f19d82a619b96c90f0af22e31e782ba63fa66568e57bc24e884e074cc359619ecc28c447add
|
data/README.md
CHANGED
@@ -7,6 +7,8 @@ This gem works as a simple Ruby wrapper for the PrioTicket API. All the API func
|
|
7
7
|
|
8
8
|
Instead of working with JSON, you work with Ruby Classes and intuitive methods.
|
9
9
|
|
10
|
+
**This gem communicates with the API Version 2.4.**
|
11
|
+
|
10
12
|
## Installation
|
11
13
|
|
12
14
|
Add this line to your application's Gemfile:
|
@@ -111,6 +113,16 @@ To reserve a date, use the `PrioTicket::Reservation` class:
|
|
111
113
|
@reservation.booking_status #=> "Cancelled"
|
112
114
|
```
|
113
115
|
|
116
|
+
A direct way to cancel a reservation, is to call the class method `.cancel`:
|
117
|
+
```ruby
|
118
|
+
PrioTicket::Reservation.cancel(
|
119
|
+
distributor_id: 1234,
|
120
|
+
reservation_reference: "YYY2067115376XXX",
|
121
|
+
distributor_reference: "TEST_RESERVATION",
|
122
|
+
identifier: "my-unique-order-abc-123"
|
123
|
+
)
|
124
|
+
```
|
125
|
+
|
114
126
|
### Booking
|
115
127
|
To make a booking, please take note of the official API Documentation: for tickets of type_2 and type_3, a `from_date_time` and `to_date_time` must be present.
|
116
128
|
|
data/lib/prioticket.rb
CHANGED
@@ -43,8 +43,8 @@ module PrioTicket
|
|
43
43
|
if date.is_a?(String)
|
44
44
|
date
|
45
45
|
elsif [DateTime, Time].include?(date.class)
|
46
|
-
date.strftime(expected_date_format)
|
47
|
-
|
46
|
+
# date.strftime(expected_date_format)
|
47
|
+
date.strftime('%Y-%m-%d')
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -79,17 +79,24 @@ module PrioTicket
|
|
79
79
|
is_integer = !!Integer(v) rescue false
|
80
80
|
is_float = !!Float(v) rescue false
|
81
81
|
is_date_time = !!DateTime.strptime(v, expected_date_format) rescue false
|
82
|
+
puts "#{k} (#{v})"
|
82
83
|
if ["true", "false"].include?(v)
|
84
|
+
puts "is boolean"
|
83
85
|
val = (v == 'true')
|
84
|
-
elsif is_integer
|
85
|
-
val = v.to_i
|
86
86
|
elsif is_date_time
|
87
|
+
puts "is date_time"
|
87
88
|
val = DateTime.strptime(v, expected_date_format)
|
89
|
+
elsif is_integer
|
90
|
+
puts "is integer"
|
91
|
+
val = v.to_i
|
88
92
|
elsif is_float
|
93
|
+
puts "is integer"
|
89
94
|
val = v.to_f
|
90
95
|
elsif [Hash, Array].include?(v.class)
|
96
|
+
puts "is hash or array"
|
91
97
|
val = JSON.parse(v.to_json, object_class: OpenStruct)
|
92
98
|
else
|
99
|
+
puts "is undefined class"
|
93
100
|
val = v
|
94
101
|
end
|
95
102
|
obj.instance_variable_set("@#{k}", val)
|
@@ -97,13 +104,3 @@ module PrioTicket
|
|
97
104
|
end
|
98
105
|
|
99
106
|
end
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
# docs:
|
105
|
-
# WNYE9On0Jqn/fivlUVgeyeYckLubVqxJ5mryhfBOfKk=
|
106
|
-
|
107
|
-
|
108
|
-
# real:
|
109
|
-
# OTU3IqrnoXVn5QvUsZIoTfKIyOEzOo9BFmWFQFtZbHk=
|
data/lib/prioticket/api.rb
CHANGED
@@ -35,7 +35,7 @@ module PrioTicket
|
|
35
35
|
step_2_string = step_1_string.encode('utf-8')
|
36
36
|
|
37
37
|
# 3. Compute the SHA-256 hash for the byte array from step 2. The result will be a byte array.
|
38
|
-
step_3_string = Digest::SHA256.digest(step_2_string)
|
38
|
+
step_3_string = Digest::SHA256.digest(step_2_string)
|
39
39
|
|
40
40
|
# 4. Base64 encode the byte array as computed in step 3.
|
41
41
|
# This string will be the x-request-authentication key for this request.
|
@@ -43,6 +43,7 @@ module PrioTicket
|
|
43
43
|
|
44
44
|
return step_4_string
|
45
45
|
end
|
46
|
+
Base64.encode64(Digest::SHA256.digest("4d07aa49a1ce9571cbd66d6383e65d46151272:PK1-MN2U-RS27-SWX").strip).strip
|
46
47
|
|
47
48
|
#
|
48
49
|
# Computes the request header
|
data/lib/prioticket/booking.rb
CHANGED
@@ -165,8 +165,11 @@ module PrioTicket
|
|
165
165
|
if ticket
|
166
166
|
if [2,3].include?(ticket.ticket_class)
|
167
167
|
unless booking_type.from_date_time && booking_type.to_date_time
|
168
|
-
|
169
|
-
|
168
|
+
unless booking_type.reservation_reference && booking_type.reservation_reference != ''
|
169
|
+
puts booking_type.inspect
|
170
|
+
err_msg = "The `booking_type` attribute requires a from_date_time and to_date_time for a ticket of ticket_class #{ticket.ticket_class}."
|
171
|
+
raise PrioTicketError.new(err_msg)
|
172
|
+
end
|
170
173
|
end
|
171
174
|
end
|
172
175
|
end
|
@@ -34,6 +34,12 @@ module PrioTicket
|
|
34
34
|
end
|
35
35
|
|
36
36
|
|
37
|
+
def cancelled
|
38
|
+
booking_status == "Cancelled" || cancellation_date_time
|
39
|
+
end
|
40
|
+
alias_method :cancelled?, :success
|
41
|
+
|
42
|
+
|
37
43
|
#
|
38
44
|
# Sends the reservation request tot the API
|
39
45
|
#
|
@@ -50,6 +56,17 @@ module PrioTicket
|
|
50
56
|
parse_result(result)
|
51
57
|
end
|
52
58
|
|
59
|
+
def self.cancel(distributor_id: nil, reservation_reference: nil, distributor_reference: nil, identifier: nil)
|
60
|
+
reservation = PrioTicket::Reservation.new(
|
61
|
+
distributor_id: distributor_id,
|
62
|
+
reservation_reference: reservation_reference,
|
63
|
+
distributor_reference: distributor_reference,
|
64
|
+
identifier: identifier
|
65
|
+
)
|
66
|
+
reservation.cancel
|
67
|
+
return reservation
|
68
|
+
end
|
69
|
+
|
53
70
|
private
|
54
71
|
|
55
72
|
#
|
data/lib/prioticket/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prioticket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henk Meijer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: digest
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
145
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.6.14
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: Ruby implementation of the PrioTicket API
|