parking_ticket 1.0.41 → 1.0.43

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '09795e77f08e8705686b748dca9a56b95b3b1418d776b5ec0bfee9f8a00ef5c7'
4
- data.tar.gz: 105daaf69de06d509b6349739946fbf361a9945f37a9a0f8acea6204f8870daf
3
+ metadata.gz: 807243c2565c844ad7894141c7288c61948b666db5d12d420f6cae068f0cb1a9
4
+ data.tar.gz: d1b652a0e6ac526c0cf0019ed01a6b9b36174b7def77039ca3106b7de1eb28ca
5
5
  SHA512:
6
- metadata.gz: 68a2dd91389a7d7c44744e6908005b3845c38bd20b2102b4b746fd3efbbf4e7d22f464f807efe526d7613bd84d546348850dcd03e3f8e21ff767d5d2932a6fb4
7
- data.tar.gz: a6464776d07b60fcf3e87fdaa65d16b6bf3281326fd6a71afefd82ff527079d3e00e8e58918c1832e1455106b148f8edcf898e332dbade70df3a902abaaa11b6
6
+ metadata.gz: e84b00754ab4630a3e5eff2ce837b515496de473d209f3330eae4a9796dac17b758936203a8e78f8150a2312cc2a5320f74f874f13ea7e3353b445ca7489997d
7
+ data.tar.gz: f7118e429f4300500523e4356b17f15e2abcff7bc031236d3d0ed3217467afff72ec5aad889ec28956630fcd15b4e3b21e2241afd8f3b1635ee39b79b1bf718f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- parking_ticket (1.0.41)
4
+ parking_ticket (1.0.43)
5
5
  faraday
6
6
 
7
7
  GEM
@@ -57,4 +57,4 @@ DEPENDENCIES
57
57
  webmock (~> 3.12)
58
58
 
59
59
  BUNDLED WITH
60
- 2.4.6
60
+ 2.3.10
@@ -38,11 +38,23 @@ module ParkingTicket
38
38
  fetch_and_map_payment_methods
39
39
  end
40
40
 
41
- def new_ticket(license_plate, zipcode, rate_option_id, quantity, time_unit, payment_method_id)
41
+ def quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
42
42
  raise_invalid_credentials! unless valid_credentials?
43
- return if running_ticket(license_plate, zipcode)
43
+ fetch_and_map_quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
44
+ end
45
+
46
+ def new_ticket(license_plate:, zipcode:, rate_option_client_internal_id:, quantity:, time_unit:, payment_method_id:)
47
+ raise_invalid_credentials! unless valid_credentials?
48
+ # return if running_ticket(license_plate, zipcode)
44
49
 
45
- request_new_ticket(license_plate, zipcode, rate_option_id, quantity, time_unit, payment_method_id)
50
+ request_new_ticket(
51
+ license_plate: license_plate,
52
+ zipcode: zipcode,
53
+ rate_option_client_internal_id: rate_option_client_internal_id,
54
+ quantity: quantity,
55
+ time_unit: time_unit,
56
+ payment_method_id: payment_method_id
57
+ )
46
58
  end
47
59
 
48
60
  private
@@ -54,20 +54,21 @@ module ParkingTicket
54
54
  end.first
55
55
  end
56
56
 
57
- def request_new_ticket(license_plate, zipcode, rate_option_id, quantity, time_unit, payment_method_id)
57
+ def request_new_ticket(license_plate:, zipcode:, rate_option_client_internal_id:, quantity:, time_unit:, payment_method_id:)
58
58
  mapped_time_unit = ACCEPTED_TIME_UNIT_MAPPER.key(time_unit)
59
- payment_method = fetch_and_map_payment_methods.find do |payment_method|
60
- payment_method[:client_internal_id] == payment_method_id
61
- end
62
- quote = fetch_and_map_quote(rate_option_id, zipcode, license_plate, quantity, mapped_time_unit)
59
+
60
+ quote = fetch_and_map_quote(rate_option_client_internal_id, zipcode, license_plate, quantity,
61
+ time_unit)
62
+
63
63
  client.new_ticket(
64
- quote[:client_internal_id],
65
- payment_method[:client_internal_id],
66
- zipcode,
67
- license_plate,
68
- quantity,
69
- mapped_time_unit,
70
- quote[:starts_on]
64
+ license_plate: license_plate,
65
+ zipcode: zipcode,
66
+ rate_option_client_internal_id: rate_option_client_internal_id,
67
+ quantity: quantity,
68
+ time_unit: mapped_time_unit,
69
+ quote_client_internal_id: quote[:client_internal_id],
70
+ starts_on: quote[:starts_on],
71
+ payment_method_id: payment_method_id
71
72
  )
72
73
  end
73
74
 
@@ -82,11 +83,14 @@ module ParkingTicket
82
83
  end
83
84
 
84
85
  def fetch_and_map_quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
85
- fetched_quote = client.quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
86
+ mapped_time_unit = ACCEPTED_TIME_UNIT_MAPPER.key(time_unit)
87
+ fetched_quote = client.quote(rate_option_id, zipcode, license_plate, quantity, mapped_time_unit)
88
+
86
89
  {
87
90
  client_internal_id: fetched_quote['quoteId'],
88
91
  starts_on: fetched_quote['parkingStartTime'],
89
- ends_on: fetched_quote['parkingExpiryTime']
92
+ ends_on: fetched_quote['parkingExpiryTime'],
93
+ cost: fetched_quote.dig('totalCost', 'amount')
90
94
  }
91
95
  end
92
96
  end
@@ -58,38 +58,45 @@ module ParkingTicket
58
58
  ).body
59
59
  end
60
60
 
61
- def new_ticket(token, account_id, quote_id, payment_method_id, zipcode, license_plate, quantity, time_unit, start_time)
62
- connection(token).post(
63
- "/parking/accounts/#{account_id}/sessions/",
64
- {
65
- "expireTime": nil,
66
- "duration": {
67
- "quantity": quantity,
68
- "timeUnit": time_unit
69
- },
70
- "licensePlate": license_plate,
71
- "locationId": zipcode,
72
- "rateOptionId": '75101',
73
- "startTime": start_time,
74
- "quoteId": quote_id,
75
- "parkingAccountId": account_id,
76
- "paymentMethod": {
77
- "paymentMethodType": 'PaymentAccount',
78
- "payload": {
79
- "paymentAccountId": payment_method_id,
80
- "clientBrowserDetails": {
81
- "browserAcceptHeader": 'text/html',
82
- "browserColorDepth": '30',
83
- "browserJavaEnabled": 'false',
84
- "browserLanguage": 'fr-FR',
85
- "browserScreenHeight": '900',
86
- "browserScreenWidth": '1440',
87
- "browserTimeZone": '-60',
88
- "browserUserAgent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
89
- }
61
+ def new_ticket(token, account_id, license_plate:, zipcode:, rate_option_client_internal_id:, quantity:, time_unit:, quote_client_internal_id:, starts_on:, payment_method_id:)
62
+ base_data = {
63
+ "expireTime": nil,
64
+ "duration": {
65
+ "quantity": quantity.to_s,
66
+ "timeUnit": time_unit
67
+ },
68
+ "licensePlate": license_plate,
69
+ "locationId": zipcode,
70
+ "rateOptionId": rate_option_client_internal_id,
71
+ "startTime": starts_on,
72
+ "quoteId": quote_client_internal_id,
73
+ "parkingAccountId": account_id
74
+ }
75
+
76
+ payment_data = {
77
+ "paymentMethod": {
78
+ "paymentMethodType": 'PaymentAccount',
79
+ "payload": {
80
+ "paymentAccountId": payment_method_id,
81
+ "clientBrowserDetails": {
82
+ "browserAcceptHeader": 'text/html',
83
+ "browserColorDepth": '30',
84
+ "browserJavaEnabled": 'false',
85
+ "browserLanguage": 'fr-FR',
86
+ "browserScreenHeight": '900',
87
+ "browserScreenWidth": '1440',
88
+ "browserTimeZone": '-60',
89
+ "browserUserAgent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
90
90
  }
91
91
  }
92
- }.to_json
92
+ }
93
+ }
94
+ byebug
95
+ final_data = payment_method_id ? base_data.merge(payment_data) : base_data
96
+
97
+ connection(token).post(
98
+ "/parking/accounts/#{account_id}/sessions/",
99
+ final_data.to_json
93
100
  ).body
94
101
  end
95
102
 
@@ -137,9 +144,16 @@ module ParkingTicket
137
144
  self.class.quote(token, account_id, rate_option_id, zipcode, license_plate, quantity, time_unit)
138
145
  end
139
146
 
140
- def new_ticket(quote_id, payment_method_id, zipcode, license_plate, quantity, time_unit, start_time)
141
- self.class.new_ticket(token, account_id, quote_id, payment_method_id, zipcode, license_plate, quantity,
142
- time_unit, start_time)
147
+ def new_ticket(license_plate:, zipcode:, rate_option_client_internal_id:, quantity:, time_unit:, quote_client_internal_id:, starts_on:, payment_method_id:)
148
+ self.class.new_ticket(token, account_id,
149
+ license_plate: license_plate,
150
+ zipcode: zipcode,
151
+ rate_option_client_internal_id: rate_option_client_internal_id,
152
+ quantity: quantity,
153
+ time_unit: time_unit,
154
+ quote_client_internal_id: quote_client_internal_id,
155
+ starts_on: starts_on,
156
+ payment_method_id: payment_method_id)
143
157
  end
144
158
 
145
159
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ParkingTicket
4
- VERSION = '1.0.41'
4
+ VERSION = '1.0.43'
5
5
  end
@@ -66,8 +66,19 @@ module ParkingTicket
66
66
  adapter.payment_methods
67
67
  end
68
68
 
69
- def new_ticket(license_plate, zipcode, rate_option_id, quantity, time_unit, payment_method_id)
70
- adapter.new_ticket(license_plate, zipcode, rate_option_id, quantity, time_unit, payment_method_id)
69
+ def new_ticket(license_plate:, zipcode:, rate_option_client_internal_id:, quantity:, time_unit:, payment_method_id:)
70
+ adapter.new_ticket(
71
+ license_plate: license_plate,
72
+ zipcode: zipcode,
73
+ rate_option_client_internal_id: rate_option_client_internal_id,
74
+ quantity: 1,
75
+ time_unit: time_unit,
76
+ payment_method_id: payment_method_id
77
+ )
78
+ end
79
+
80
+ def quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
81
+ adapter.quote(rate_option_id, zipcode, license_plate, quantity, time_unit)
71
82
  end
72
83
 
73
84
  private
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parking_ticket
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.41
4
+ version: 1.0.43
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Ecrepont
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-21 00:00:00.000000000 Z
11
+ date: 2023-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday