amtrak 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -0
  3. data/README.markdown +184 -2
  4. data/amtrak.gemspec +3 -4
  5. data/lib/amtrak.rb +2 -3
  6. data/lib/amtrak/train_fetcher.rb +25 -28
  7. data/lib/amtrak/train_parser.rb +30 -86
  8. data/lib/amtrak/version.rb +1 -1
  9. data/spec/amtrak/train_fetcher_spec.rb +26 -22
  10. data/spec/amtrak/train_parser_spec.rb +8 -64
  11. data/spec/amtrak_spec.rb +1 -2
  12. data/spec/fixtures/json/_get.json +223 -28
  13. data/spec/fixtures/json/_parse.json +211 -42
  14. data/spec/fixtures/json/pvd_to_bby.json +1131 -0
  15. data/spec/fixtures/vcr/Amtrak/_get/returns_a_list_of_train_times.yml +1160 -1250
  16. data/spec/fixtures/vcr/Amtrak_TrainFetcher/_get/does_the_same_as_get.yml +1159 -1628
  17. data/spec/fixtures/vcr/Amtrak_TrainFetcher/_get/given_a_valid_date_and_invalid_train_stations/does_not_include_various_keys_and_includes_an_error.yml +66 -0
  18. data/spec/fixtures/vcr/Amtrak_TrainFetcher/_get/given_a_valid_date_and_train_stations/includes_various_keys.yml +1181 -0
  19. data/spec/fixtures/vcr/Amtrak_TrainFetcher/_get/given_an_invalid_date_and_valid_train_stations/does_not_include_various_keys_and_includes_an_error.yml +66 -0
  20. metadata +22 -54
  21. data/lib/amtrak/train_fetcher/main_page.rb +0 -83
  22. data/lib/amtrak/train_fetcher/train_page.rb +0 -52
  23. data/spec/amtrak/train_fetcher/main_page_spec.rb +0 -53
  24. data/spec/amtrak/train_fetcher/train_page_spec.rb +0 -18
  25. data/spec/fixtures/html/pvd_to_bby.html +0 -2596
  26. data/spec/fixtures/html/pvd_to_bby_cancelled.html +0 -2671
  27. data/spec/fixtures/json/_parse_cancelled.json +0 -132
  28. data/spec/fixtures/vcr/Amtrak_TrainFetcher/_get/given_a_valid_date_and_invalid_train_stations/does_not_include_various_classes_and_includes_an_error.yml +0 -1073
  29. data/spec/fixtures/vcr/Amtrak_TrainFetcher/_get/given_a_valid_date_and_train_stations/includes_various_classes.yml +0 -1650
  30. data/spec/fixtures/vcr/Amtrak_TrainFetcher/_get/given_an_invalid_date_and_valid_train_stations/does_not_include_various_classes_and_includes_an_error.yml +0 -1071
  31. data/spec/fixtures/vcr/Amtrak_TrainFetcher_MainPage/_session_id/pulls_the_session_id_from_the_cookies.yml +0 -1071
  32. data/spec/fixtures/vcr/Amtrak_TrainFetcher_MainPage/_total_pages/when_more_than_one_page_exists_on_the_website/returns_2.yml +0 -1263
  33. data/spec/fixtures/vcr/Amtrak_TrainFetcher_MainPage/_total_pages/when_only_one_page_exists_on_the_website/returns_1.yml +0 -1154
  34. data/spec/fixtures/vcr/Amtrak_TrainFetcher_TrainPage/_get/when_it_works/includes_various_classes.yml +0 -198
@@ -0,0 +1,66 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://rider.amtrak.com/MobileApps/TrainStatus
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"dateTime":"2017-10-12","origin":"ASKDF","destination":"BBY","type":"A","versionNumber":"2.2.12"}'
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Content-Type:
13
+ - application/json
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ X-Backside-Transport:
20
+ - OK OK
21
+ X-Powered-By:
22
+ - Servlet/3.0
23
+ Content-Type:
24
+ - application/json
25
+ Access-Control-Allow-Headers:
26
+ - Content-Type
27
+ Access-Control-Allow-Methods:
28
+ - POST, OPTIONS
29
+ Access-Control-Allow-Origin:
30
+ - "*"
31
+ Content-Language:
32
+ - en-US
33
+ X-Global-Transaction-Id:
34
+ - '3847092071'
35
+ X-Dp-Tid:
36
+ - '3847092071'
37
+ X-Dp-Srversion:
38
+ - '1.0'
39
+ Date:
40
+ - Thu, 12 Oct 2017 01:37:17 GMT
41
+ Content-Length:
42
+ - '382'
43
+ Connection:
44
+ - keep-alive
45
+ body:
46
+ encoding: ASCII-8BIT
47
+ string: |-
48
+ {
49
+ "appVersion": null,
50
+ "authenticationToken": null,
51
+ "buildNumber": null,
52
+ "errors": [
53
+ {
54
+ "ariesMessage": null,
55
+ "code": "APPLICATION_ERROR",
56
+ "text": "We are temporarily unable to process your request. Please try again [R440]",
57
+ "type": null
58
+ }
59
+ ],
60
+ "hostName": null,
61
+ "infoNotification": null,
62
+ "responseCode": "ERROR"
63
+ }
64
+ http_version:
65
+ recorded_at: Thu, 12 Oct 2017 01:37:20 GMT
66
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,1181 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://rider.amtrak.com/MobileApps/TrainStatus
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"dateTime":"2017-10-12","origin":"PVD","destination":"BBY","type":"A","versionNumber":"2.2.12"}'
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Content-Type:
13
+ - application/json
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ X-Backside-Transport:
20
+ - OK OK
21
+ X-Powered-By:
22
+ - Servlet/3.0
23
+ Content-Type:
24
+ - application/json
25
+ Access-Control-Allow-Headers:
26
+ - Content-Type
27
+ Access-Control-Allow-Methods:
28
+ - POST, OPTIONS
29
+ Access-Control-Allow-Origin:
30
+ - "*"
31
+ Content-Language:
32
+ - en-US
33
+ X-Global-Transaction-Id:
34
+ - '3327556783'
35
+ X-Dp-Tid:
36
+ - '3327556783'
37
+ X-Dp-Srversion:
38
+ - '1.0'
39
+ Date:
40
+ - Thu, 12 Oct 2017 01:37:17 GMT
41
+ Content-Length:
42
+ - '42018'
43
+ Connection:
44
+ - keep-alive
45
+ body:
46
+ encoding: ASCII-8BIT
47
+ string: |-
48
+ {
49
+ "appVersion": "1.51",
50
+ "authenticationToken": null,
51
+ "buildNumber": "1.51_20170909.0300",
52
+ "hostName": "ussbpri031amtra",
53
+ "infoNotification": null,
54
+ "journeys": [
55
+ {
56
+ "alternative": null,
57
+ "bedRoomClassPrice": null,
58
+ "duration": null,
59
+ "durationMinutes": 0,
60
+ "journeyTotalFare": null,
61
+ "lowFareClass": null,
62
+ "modifiable": null,
63
+ "passenger": null,
64
+ "refId": null,
65
+ "rooms": null,
66
+ "seats": null,
67
+ "segments": [
68
+ {
69
+ "additionalInfo": null,
70
+ "amenities": null,
71
+ "ancillary": null,
72
+ "appType": null,
73
+ "arrivalDateTime": null,
74
+ "arrivalStationCode": null,
75
+ "arrivalStationName": null,
76
+ "authenticationToken": null,
77
+ "classCode": null,
78
+ "classCodeQuantity": null,
79
+ "companyName": null,
80
+ "compartments": null,
81
+ "crossBorder": null,
82
+ "departureDateTime": null,
83
+ "departureDateTimeInUTC": null,
84
+ "departureStationCode": null,
85
+ "departureStationName": null,
86
+ "destinationEstimatedArrivalDateTime": "2017-10-12T00:11:00",
87
+ "destinationPostedArrivalDateTime": null,
88
+ "destinationScheduledArrivalDateTime": "2017-10-12T00:14:00",
89
+ "destinationStationCode": "BBY",
90
+ "destinationStatusComment": null,
91
+ "displayRoomNumbers": false,
92
+ "duration": null,
93
+ "durationMinutes": 0,
94
+ "isAlternative": null,
95
+ "isBus": null,
96
+ "isRestrictive": null,
97
+ "originEstimatedDepartureDateTime": "2017-10-11T23:29:00",
98
+ "originPostedDepartureDateTime": null,
99
+ "originScheduledDepartureDateTime": "2017-10-11T23:29:00",
100
+ "originStationCode": "PVD",
101
+ "originStatusComment": null,
102
+ "rooms": null,
103
+ "routeName": "Northeast Regional",
104
+ "seats": null,
105
+ "segmentServiceStatus": "false",
106
+ "serviceMessage": "03 MI EARLY",
107
+ "serviceStatus": null,
108
+ "trainNumber": "178",
109
+ "validate": true,
110
+ "versionNumber": null
111
+ }
112
+ ]
113
+ },
114
+ {
115
+ "alternative": null,
116
+ "bedRoomClassPrice": null,
117
+ "duration": null,
118
+ "durationMinutes": 0,
119
+ "journeyTotalFare": null,
120
+ "lowFareClass": null,
121
+ "modifiable": null,
122
+ "passenger": null,
123
+ "refId": null,
124
+ "rooms": null,
125
+ "seats": null,
126
+ "segments": [
127
+ {
128
+ "additionalInfo": null,
129
+ "amenities": null,
130
+ "ancillary": null,
131
+ "appType": null,
132
+ "arrivalDateTime": null,
133
+ "arrivalStationCode": null,
134
+ "arrivalStationName": null,
135
+ "authenticationToken": null,
136
+ "classCode": null,
137
+ "classCodeQuantity": null,
138
+ "companyName": null,
139
+ "compartments": null,
140
+ "crossBorder": null,
141
+ "departureDateTime": null,
142
+ "departureDateTimeInUTC": null,
143
+ "departureStationCode": null,
144
+ "departureStationName": null,
145
+ "destinationEstimatedArrivalDateTime": "2017-10-12T07:38:00",
146
+ "destinationPostedArrivalDateTime": null,
147
+ "destinationScheduledArrivalDateTime": "2017-10-12T07:53:00",
148
+ "destinationStationCode": "BBY",
149
+ "destinationStatusComment": null,
150
+ "displayRoomNumbers": false,
151
+ "duration": null,
152
+ "durationMinutes": 0,
153
+ "isAlternative": null,
154
+ "isBus": null,
155
+ "isRestrictive": null,
156
+ "originEstimatedDepartureDateTime": "2017-10-12T06:56:00",
157
+ "originPostedDepartureDateTime": null,
158
+ "originScheduledDepartureDateTime": "2017-10-12T06:56:00",
159
+ "originStationCode": "PVD",
160
+ "originStatusComment": null,
161
+ "rooms": null,
162
+ "routeName": "Northeast Regional",
163
+ "seats": null,
164
+ "segmentServiceStatus": "false",
165
+ "serviceMessage": "15 MI EARLY",
166
+ "serviceStatus": null,
167
+ "trainNumber": "66",
168
+ "validate": true,
169
+ "versionNumber": null
170
+ }
171
+ ]
172
+ },
173
+ {
174
+ "alternative": null,
175
+ "bedRoomClassPrice": null,
176
+ "duration": null,
177
+ "durationMinutes": 0,
178
+ "journeyTotalFare": null,
179
+ "lowFareClass": null,
180
+ "modifiable": null,
181
+ "passenger": null,
182
+ "refId": null,
183
+ "rooms": null,
184
+ "seats": null,
185
+ "segments": [
186
+ {
187
+ "additionalInfo": null,
188
+ "amenities": null,
189
+ "ancillary": null,
190
+ "appType": null,
191
+ "arrivalDateTime": null,
192
+ "arrivalStationCode": null,
193
+ "arrivalStationName": null,
194
+ "authenticationToken": null,
195
+ "classCode": null,
196
+ "classCodeQuantity": null,
197
+ "companyName": null,
198
+ "compartments": null,
199
+ "crossBorder": null,
200
+ "departureDateTime": null,
201
+ "departureDateTimeInUTC": null,
202
+ "departureStationCode": null,
203
+ "departureStationName": null,
204
+ "destinationEstimatedArrivalDateTime": null,
205
+ "destinationPostedArrivalDateTime": null,
206
+ "destinationScheduledArrivalDateTime": "2017-10-12T09:56:00",
207
+ "destinationStationCode": "BBY",
208
+ "destinationStatusComment": null,
209
+ "displayRoomNumbers": false,
210
+ "duration": null,
211
+ "durationMinutes": 0,
212
+ "isAlternative": null,
213
+ "isBus": null,
214
+ "isRestrictive": null,
215
+ "originEstimatedDepartureDateTime": null,
216
+ "originPostedDepartureDateTime": null,
217
+ "originScheduledDepartureDateTime": "2017-10-12T09:20:00",
218
+ "originStationCode": "PVD",
219
+ "originStatusComment": null,
220
+ "rooms": null,
221
+ "routeName": "Acela Express",
222
+ "seats": null,
223
+ "segmentServiceStatus": "false",
224
+ "serviceMessage": null,
225
+ "serviceStatus": null,
226
+ "trainNumber": "2190",
227
+ "validate": true,
228
+ "versionNumber": null
229
+ }
230
+ ]
231
+ },
232
+ {
233
+ "alternative": null,
234
+ "bedRoomClassPrice": null,
235
+ "duration": null,
236
+ "durationMinutes": 0,
237
+ "journeyTotalFare": null,
238
+ "lowFareClass": null,
239
+ "modifiable": null,
240
+ "passenger": null,
241
+ "refId": null,
242
+ "rooms": null,
243
+ "seats": null,
244
+ "segments": [
245
+ {
246
+ "additionalInfo": null,
247
+ "amenities": null,
248
+ "ancillary": null,
249
+ "appType": null,
250
+ "arrivalDateTime": null,
251
+ "arrivalStationCode": null,
252
+ "arrivalStationName": null,
253
+ "authenticationToken": null,
254
+ "classCode": null,
255
+ "classCodeQuantity": null,
256
+ "companyName": null,
257
+ "compartments": null,
258
+ "crossBorder": null,
259
+ "departureDateTime": null,
260
+ "departureDateTimeInUTC": null,
261
+ "departureStationCode": null,
262
+ "departureStationName": null,
263
+ "destinationEstimatedArrivalDateTime": null,
264
+ "destinationPostedArrivalDateTime": null,
265
+ "destinationScheduledArrivalDateTime": "2017-10-12T10:59:00",
266
+ "destinationStationCode": "BBY",
267
+ "destinationStatusComment": null,
268
+ "displayRoomNumbers": false,
269
+ "duration": null,
270
+ "durationMinutes": 0,
271
+ "isAlternative": null,
272
+ "isBus": null,
273
+ "isRestrictive": null,
274
+ "originEstimatedDepartureDateTime": null,
275
+ "originPostedDepartureDateTime": null,
276
+ "originScheduledDepartureDateTime": "2017-10-12T10:17:00",
277
+ "originStationCode": "PVD",
278
+ "originStatusComment": null,
279
+ "rooms": null,
280
+ "routeName": "Northeast Regional",
281
+ "seats": null,
282
+ "segmentServiceStatus": "false",
283
+ "serviceMessage": null,
284
+ "serviceStatus": null,
285
+ "trainNumber": "190",
286
+ "validate": true,
287
+ "versionNumber": null
288
+ }
289
+ ]
290
+ },
291
+ {
292
+ "alternative": null,
293
+ "bedRoomClassPrice": null,
294
+ "duration": null,
295
+ "durationMinutes": 0,
296
+ "journeyTotalFare": null,
297
+ "lowFareClass": null,
298
+ "modifiable": null,
299
+ "passenger": null,
300
+ "refId": null,
301
+ "rooms": null,
302
+ "seats": null,
303
+ "segments": [
304
+ {
305
+ "additionalInfo": null,
306
+ "amenities": null,
307
+ "ancillary": null,
308
+ "appType": null,
309
+ "arrivalDateTime": null,
310
+ "arrivalStationCode": null,
311
+ "arrivalStationName": null,
312
+ "authenticationToken": null,
313
+ "classCode": null,
314
+ "classCodeQuantity": null,
315
+ "companyName": null,
316
+ "compartments": null,
317
+ "crossBorder": null,
318
+ "departureDateTime": null,
319
+ "departureDateTimeInUTC": null,
320
+ "departureStationCode": null,
321
+ "departureStationName": null,
322
+ "destinationEstimatedArrivalDateTime": null,
323
+ "destinationPostedArrivalDateTime": null,
324
+ "destinationScheduledArrivalDateTime": "2017-10-12T11:34:00",
325
+ "destinationStationCode": "BBY",
326
+ "destinationStatusComment": null,
327
+ "displayRoomNumbers": false,
328
+ "duration": null,
329
+ "durationMinutes": 0,
330
+ "isAlternative": null,
331
+ "isBus": null,
332
+ "isRestrictive": null,
333
+ "originEstimatedDepartureDateTime": null,
334
+ "originPostedDepartureDateTime": null,
335
+ "originScheduledDepartureDateTime": "2017-10-12T10:53:00",
336
+ "originStationCode": "PVD",
337
+ "originStatusComment": null,
338
+ "rooms": null,
339
+ "routeName": "Acela Express",
340
+ "seats": null,
341
+ "segmentServiceStatus": "false",
342
+ "serviceMessage": null,
343
+ "serviceStatus": null,
344
+ "trainNumber": "2150",
345
+ "validate": true,
346
+ "versionNumber": null
347
+ }
348
+ ]
349
+ },
350
+ {
351
+ "alternative": null,
352
+ "bedRoomClassPrice": null,
353
+ "duration": null,
354
+ "durationMinutes": 0,
355
+ "journeyTotalFare": null,
356
+ "lowFareClass": null,
357
+ "modifiable": null,
358
+ "passenger": null,
359
+ "refId": null,
360
+ "rooms": null,
361
+ "seats": null,
362
+ "segments": [
363
+ {
364
+ "additionalInfo": null,
365
+ "amenities": null,
366
+ "ancillary": null,
367
+ "appType": null,
368
+ "arrivalDateTime": null,
369
+ "arrivalStationCode": null,
370
+ "arrivalStationName": null,
371
+ "authenticationToken": null,
372
+ "classCode": null,
373
+ "classCodeQuantity": null,
374
+ "companyName": null,
375
+ "compartments": null,
376
+ "crossBorder": null,
377
+ "departureDateTime": null,
378
+ "departureDateTimeInUTC": null,
379
+ "departureStationCode": null,
380
+ "departureStationName": null,
381
+ "destinationEstimatedArrivalDateTime": null,
382
+ "destinationPostedArrivalDateTime": null,
383
+ "destinationScheduledArrivalDateTime": "2017-10-12T12:39:00",
384
+ "destinationStationCode": "BBY",
385
+ "destinationStatusComment": null,
386
+ "displayRoomNumbers": false,
387
+ "duration": null,
388
+ "durationMinutes": 0,
389
+ "isAlternative": null,
390
+ "isBus": null,
391
+ "isRestrictive": null,
392
+ "originEstimatedDepartureDateTime": null,
393
+ "originPostedDepartureDateTime": null,
394
+ "originScheduledDepartureDateTime": "2017-10-12T11:55:00",
395
+ "originStationCode": "PVD",
396
+ "originStatusComment": null,
397
+ "rooms": null,
398
+ "routeName": "Northeast Regional",
399
+ "seats": null,
400
+ "segmentServiceStatus": "false",
401
+ "serviceMessage": null,
402
+ "serviceStatus": null,
403
+ "trainNumber": "170",
404
+ "validate": true,
405
+ "versionNumber": null
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "alternative": null,
411
+ "bedRoomClassPrice": null,
412
+ "duration": null,
413
+ "durationMinutes": 0,
414
+ "journeyTotalFare": null,
415
+ "lowFareClass": null,
416
+ "modifiable": null,
417
+ "passenger": null,
418
+ "refId": null,
419
+ "rooms": null,
420
+ "seats": null,
421
+ "segments": [
422
+ {
423
+ "additionalInfo": null,
424
+ "amenities": null,
425
+ "ancillary": null,
426
+ "appType": null,
427
+ "arrivalDateTime": null,
428
+ "arrivalStationCode": null,
429
+ "arrivalStationName": null,
430
+ "authenticationToken": null,
431
+ "classCode": null,
432
+ "classCodeQuantity": null,
433
+ "companyName": null,
434
+ "compartments": null,
435
+ "crossBorder": null,
436
+ "departureDateTime": null,
437
+ "departureDateTimeInUTC": null,
438
+ "departureStationCode": null,
439
+ "departureStationName": null,
440
+ "destinationEstimatedArrivalDateTime": null,
441
+ "destinationPostedArrivalDateTime": null,
442
+ "destinationScheduledArrivalDateTime": "2017-10-12T13:39:00",
443
+ "destinationStationCode": "BBY",
444
+ "destinationStatusComment": null,
445
+ "displayRoomNumbers": false,
446
+ "duration": null,
447
+ "durationMinutes": 0,
448
+ "isAlternative": null,
449
+ "isBus": null,
450
+ "isRestrictive": null,
451
+ "originEstimatedDepartureDateTime": null,
452
+ "originPostedDepartureDateTime": null,
453
+ "originScheduledDepartureDateTime": "2017-10-12T12:56:00",
454
+ "originStationCode": "PVD",
455
+ "originStatusComment": null,
456
+ "rooms": null,
457
+ "routeName": "Acela Express",
458
+ "seats": null,
459
+ "segmentServiceStatus": "false",
460
+ "serviceMessage": null,
461
+ "serviceStatus": null,
462
+ "trainNumber": "2154",
463
+ "validate": true,
464
+ "versionNumber": null
465
+ }
466
+ ]
467
+ },
468
+ {
469
+ "alternative": null,
470
+ "bedRoomClassPrice": null,
471
+ "duration": null,
472
+ "durationMinutes": 0,
473
+ "journeyTotalFare": null,
474
+ "lowFareClass": null,
475
+ "modifiable": null,
476
+ "passenger": null,
477
+ "refId": null,
478
+ "rooms": null,
479
+ "seats": null,
480
+ "segments": [
481
+ {
482
+ "additionalInfo": null,
483
+ "amenities": null,
484
+ "ancillary": null,
485
+ "appType": null,
486
+ "arrivalDateTime": null,
487
+ "arrivalStationCode": null,
488
+ "arrivalStationName": null,
489
+ "authenticationToken": null,
490
+ "classCode": null,
491
+ "classCodeQuantity": null,
492
+ "companyName": null,
493
+ "compartments": null,
494
+ "crossBorder": null,
495
+ "departureDateTime": null,
496
+ "departureDateTimeInUTC": null,
497
+ "departureStationCode": null,
498
+ "departureStationName": null,
499
+ "destinationEstimatedArrivalDateTime": null,
500
+ "destinationPostedArrivalDateTime": null,
501
+ "destinationScheduledArrivalDateTime": "2017-10-12T15:09:00",
502
+ "destinationStationCode": "BBY",
503
+ "destinationStatusComment": null,
504
+ "displayRoomNumbers": false,
505
+ "duration": null,
506
+ "durationMinutes": 0,
507
+ "isAlternative": null,
508
+ "isBus": null,
509
+ "isRestrictive": null,
510
+ "originEstimatedDepartureDateTime": null,
511
+ "originPostedDepartureDateTime": null,
512
+ "originScheduledDepartureDateTime": "2017-10-12T14:23:00",
513
+ "originStationCode": "PVD",
514
+ "originStatusComment": null,
515
+ "rooms": null,
516
+ "routeName": "Northeast Regional",
517
+ "seats": null,
518
+ "segmentServiceStatus": "false",
519
+ "serviceMessage": null,
520
+ "serviceStatus": null,
521
+ "trainNumber": "172",
522
+ "validate": true,
523
+ "versionNumber": null
524
+ }
525
+ ]
526
+ },
527
+ {
528
+ "alternative": null,
529
+ "bedRoomClassPrice": null,
530
+ "duration": null,
531
+ "durationMinutes": 0,
532
+ "journeyTotalFare": null,
533
+ "lowFareClass": null,
534
+ "modifiable": null,
535
+ "passenger": null,
536
+ "refId": null,
537
+ "rooms": null,
538
+ "seats": null,
539
+ "segments": [
540
+ {
541
+ "additionalInfo": null,
542
+ "amenities": null,
543
+ "ancillary": null,
544
+ "appType": null,
545
+ "arrivalDateTime": null,
546
+ "arrivalStationCode": null,
547
+ "arrivalStationName": null,
548
+ "authenticationToken": null,
549
+ "classCode": null,
550
+ "classCodeQuantity": null,
551
+ "companyName": null,
552
+ "compartments": null,
553
+ "crossBorder": null,
554
+ "departureDateTime": null,
555
+ "departureDateTimeInUTC": null,
556
+ "departureStationCode": null,
557
+ "departureStationName": null,
558
+ "destinationEstimatedArrivalDateTime": null,
559
+ "destinationPostedArrivalDateTime": null,
560
+ "destinationScheduledArrivalDateTime": "2017-10-12T15:42:00",
561
+ "destinationStationCode": "BBY",
562
+ "destinationStatusComment": null,
563
+ "displayRoomNumbers": false,
564
+ "duration": null,
565
+ "durationMinutes": 0,
566
+ "isAlternative": null,
567
+ "isBus": null,
568
+ "isRestrictive": null,
569
+ "originEstimatedDepartureDateTime": null,
570
+ "originPostedDepartureDateTime": null,
571
+ "originScheduledDepartureDateTime": "2017-10-12T14:59:00",
572
+ "originStationCode": "PVD",
573
+ "originStatusComment": null,
574
+ "rooms": null,
575
+ "routeName": "Acela Express",
576
+ "seats": null,
577
+ "segmentServiceStatus": "false",
578
+ "serviceMessage": null,
579
+ "serviceStatus": null,
580
+ "trainNumber": "2158",
581
+ "validate": true,
582
+ "versionNumber": null
583
+ }
584
+ ]
585
+ },
586
+ {
587
+ "alternative": null,
588
+ "bedRoomClassPrice": null,
589
+ "duration": null,
590
+ "durationMinutes": 0,
591
+ "journeyTotalFare": null,
592
+ "lowFareClass": null,
593
+ "modifiable": null,
594
+ "passenger": null,
595
+ "refId": null,
596
+ "rooms": null,
597
+ "seats": null,
598
+ "segments": [
599
+ {
600
+ "additionalInfo": null,
601
+ "amenities": null,
602
+ "ancillary": null,
603
+ "appType": null,
604
+ "arrivalDateTime": null,
605
+ "arrivalStationCode": null,
606
+ "arrivalStationName": null,
607
+ "authenticationToken": null,
608
+ "classCode": null,
609
+ "classCodeQuantity": null,
610
+ "companyName": null,
611
+ "compartments": null,
612
+ "crossBorder": null,
613
+ "departureDateTime": null,
614
+ "departureDateTimeInUTC": null,
615
+ "departureStationCode": null,
616
+ "departureStationName": null,
617
+ "destinationEstimatedArrivalDateTime": null,
618
+ "destinationPostedArrivalDateTime": null,
619
+ "destinationScheduledArrivalDateTime": "2017-10-12T16:28:00",
620
+ "destinationStationCode": "BBY",
621
+ "destinationStatusComment": null,
622
+ "displayRoomNumbers": false,
623
+ "duration": null,
624
+ "durationMinutes": 0,
625
+ "isAlternative": null,
626
+ "isBus": null,
627
+ "isRestrictive": null,
628
+ "originEstimatedDepartureDateTime": null,
629
+ "originPostedDepartureDateTime": null,
630
+ "originScheduledDepartureDateTime": "2017-10-12T15:47:00",
631
+ "originStationCode": "PVD",
632
+ "originStatusComment": null,
633
+ "rooms": null,
634
+ "routeName": "Northeast Regional",
635
+ "seats": null,
636
+ "segmentServiceStatus": "false",
637
+ "serviceMessage": null,
638
+ "serviceStatus": null,
639
+ "trainNumber": "86",
640
+ "validate": true,
641
+ "versionNumber": null
642
+ }
643
+ ]
644
+ },
645
+ {
646
+ "alternative": null,
647
+ "bedRoomClassPrice": null,
648
+ "duration": null,
649
+ "durationMinutes": 0,
650
+ "journeyTotalFare": null,
651
+ "lowFareClass": null,
652
+ "modifiable": null,
653
+ "passenger": null,
654
+ "refId": null,
655
+ "rooms": null,
656
+ "seats": null,
657
+ "segments": [
658
+ {
659
+ "additionalInfo": null,
660
+ "amenities": null,
661
+ "ancillary": null,
662
+ "appType": null,
663
+ "arrivalDateTime": null,
664
+ "arrivalStationCode": null,
665
+ "arrivalStationName": null,
666
+ "authenticationToken": null,
667
+ "classCode": null,
668
+ "classCodeQuantity": null,
669
+ "companyName": null,
670
+ "compartments": null,
671
+ "crossBorder": null,
672
+ "departureDateTime": null,
673
+ "departureDateTimeInUTC": null,
674
+ "departureStationCode": null,
675
+ "departureStationName": null,
676
+ "destinationEstimatedArrivalDateTime": null,
677
+ "destinationPostedArrivalDateTime": null,
678
+ "destinationScheduledArrivalDateTime": "2017-10-12T16:45:00",
679
+ "destinationStationCode": "BBY",
680
+ "destinationStatusComment": null,
681
+ "displayRoomNumbers": false,
682
+ "duration": null,
683
+ "durationMinutes": 0,
684
+ "isAlternative": null,
685
+ "isBus": null,
686
+ "isRestrictive": null,
687
+ "originEstimatedDepartureDateTime": null,
688
+ "originPostedDepartureDateTime": null,
689
+ "originScheduledDepartureDateTime": "2017-10-12T16:02:00",
690
+ "originStationCode": "PVD",
691
+ "originStatusComment": null,
692
+ "rooms": null,
693
+ "routeName": "Acela Express",
694
+ "seats": null,
695
+ "segmentServiceStatus": "false",
696
+ "serviceMessage": null,
697
+ "serviceStatus": null,
698
+ "trainNumber": "2160",
699
+ "validate": true,
700
+ "versionNumber": null
701
+ }
702
+ ]
703
+ },
704
+ {
705
+ "alternative": null,
706
+ "bedRoomClassPrice": null,
707
+ "duration": null,
708
+ "durationMinutes": 0,
709
+ "journeyTotalFare": null,
710
+ "lowFareClass": null,
711
+ "modifiable": null,
712
+ "passenger": null,
713
+ "refId": null,
714
+ "rooms": null,
715
+ "seats": null,
716
+ "segments": [
717
+ {
718
+ "additionalInfo": null,
719
+ "amenities": null,
720
+ "ancillary": null,
721
+ "appType": null,
722
+ "arrivalDateTime": null,
723
+ "arrivalStationCode": null,
724
+ "arrivalStationName": null,
725
+ "authenticationToken": null,
726
+ "classCode": null,
727
+ "classCodeQuantity": null,
728
+ "companyName": null,
729
+ "compartments": null,
730
+ "crossBorder": null,
731
+ "departureDateTime": null,
732
+ "departureDateTimeInUTC": null,
733
+ "departureStationCode": null,
734
+ "departureStationName": null,
735
+ "destinationEstimatedArrivalDateTime": null,
736
+ "destinationPostedArrivalDateTime": null,
737
+ "destinationScheduledArrivalDateTime": "2017-10-12T18:23:00",
738
+ "destinationStationCode": "BBY",
739
+ "destinationStatusComment": null,
740
+ "displayRoomNumbers": false,
741
+ "duration": null,
742
+ "durationMinutes": 0,
743
+ "isAlternative": null,
744
+ "isBus": null,
745
+ "isRestrictive": null,
746
+ "originEstimatedDepartureDateTime": null,
747
+ "originPostedDepartureDateTime": null,
748
+ "originScheduledDepartureDateTime": "2017-10-12T17:30:00",
749
+ "originStationCode": "PVD",
750
+ "originStatusComment": null,
751
+ "rooms": null,
752
+ "routeName": "Northeast Regional",
753
+ "seats": null,
754
+ "segmentServiceStatus": "false",
755
+ "serviceMessage": null,
756
+ "serviceStatus": null,
757
+ "trainNumber": "174",
758
+ "validate": true,
759
+ "versionNumber": null
760
+ }
761
+ ]
762
+ },
763
+ {
764
+ "alternative": null,
765
+ "bedRoomClassPrice": null,
766
+ "duration": null,
767
+ "durationMinutes": 0,
768
+ "journeyTotalFare": null,
769
+ "lowFareClass": null,
770
+ "modifiable": null,
771
+ "passenger": null,
772
+ "refId": null,
773
+ "rooms": null,
774
+ "seats": null,
775
+ "segments": [
776
+ {
777
+ "additionalInfo": null,
778
+ "amenities": null,
779
+ "ancillary": null,
780
+ "appType": null,
781
+ "arrivalDateTime": null,
782
+ "arrivalStationCode": null,
783
+ "arrivalStationName": null,
784
+ "authenticationToken": null,
785
+ "classCode": null,
786
+ "classCodeQuantity": null,
787
+ "companyName": null,
788
+ "compartments": null,
789
+ "crossBorder": null,
790
+ "departureDateTime": null,
791
+ "departureDateTimeInUTC": null,
792
+ "departureStationCode": null,
793
+ "departureStationName": null,
794
+ "destinationEstimatedArrivalDateTime": null,
795
+ "destinationPostedArrivalDateTime": null,
796
+ "destinationScheduledArrivalDateTime": "2017-10-12T18:39:00",
797
+ "destinationStationCode": "BBY",
798
+ "destinationStatusComment": null,
799
+ "displayRoomNumbers": false,
800
+ "duration": null,
801
+ "durationMinutes": 0,
802
+ "isAlternative": null,
803
+ "isBus": null,
804
+ "isRestrictive": null,
805
+ "originEstimatedDepartureDateTime": null,
806
+ "originPostedDepartureDateTime": null,
807
+ "originScheduledDepartureDateTime": "2017-10-12T17:51:00",
808
+ "originStationCode": "PVD",
809
+ "originStatusComment": null,
810
+ "rooms": null,
811
+ "routeName": "Acela Express",
812
+ "seats": null,
813
+ "segmentServiceStatus": "false",
814
+ "serviceMessage": null,
815
+ "serviceStatus": null,
816
+ "trainNumber": "2164",
817
+ "validate": true,
818
+ "versionNumber": null
819
+ }
820
+ ]
821
+ },
822
+ {
823
+ "alternative": null,
824
+ "bedRoomClassPrice": null,
825
+ "duration": null,
826
+ "durationMinutes": 0,
827
+ "journeyTotalFare": null,
828
+ "lowFareClass": null,
829
+ "modifiable": null,
830
+ "passenger": null,
831
+ "refId": null,
832
+ "rooms": null,
833
+ "seats": null,
834
+ "segments": [
835
+ {
836
+ "additionalInfo": null,
837
+ "amenities": null,
838
+ "ancillary": null,
839
+ "appType": null,
840
+ "arrivalDateTime": null,
841
+ "arrivalStationCode": null,
842
+ "arrivalStationName": null,
843
+ "authenticationToken": null,
844
+ "classCode": null,
845
+ "classCodeQuantity": null,
846
+ "companyName": null,
847
+ "compartments": null,
848
+ "crossBorder": null,
849
+ "departureDateTime": null,
850
+ "departureDateTimeInUTC": null,
851
+ "departureStationCode": null,
852
+ "departureStationName": null,
853
+ "destinationEstimatedArrivalDateTime": null,
854
+ "destinationPostedArrivalDateTime": null,
855
+ "destinationScheduledArrivalDateTime": "2017-10-12T19:35:00",
856
+ "destinationStationCode": "BBY",
857
+ "destinationStatusComment": null,
858
+ "displayRoomNumbers": false,
859
+ "duration": null,
860
+ "durationMinutes": 0,
861
+ "isAlternative": null,
862
+ "isBus": null,
863
+ "isRestrictive": null,
864
+ "originEstimatedDepartureDateTime": null,
865
+ "originPostedDepartureDateTime": null,
866
+ "originScheduledDepartureDateTime": "2017-10-12T18:54:00",
867
+ "originStationCode": "PVD",
868
+ "originStatusComment": null,
869
+ "rooms": null,
870
+ "routeName": "Acela Express",
871
+ "seats": null,
872
+ "segmentServiceStatus": "false",
873
+ "serviceMessage": "DELAY W. OF NWK - TRESPASSER HOLD AHEAD",
874
+ "serviceStatus": null,
875
+ "trainNumber": "2166",
876
+ "validate": true,
877
+ "versionNumber": null
878
+ }
879
+ ]
880
+ },
881
+ {
882
+ "alternative": null,
883
+ "bedRoomClassPrice": null,
884
+ "duration": null,
885
+ "durationMinutes": 0,
886
+ "journeyTotalFare": null,
887
+ "lowFareClass": null,
888
+ "modifiable": null,
889
+ "passenger": null,
890
+ "refId": null,
891
+ "rooms": null,
892
+ "seats": null,
893
+ "segments": [
894
+ {
895
+ "additionalInfo": null,
896
+ "amenities": null,
897
+ "ancillary": null,
898
+ "appType": null,
899
+ "arrivalDateTime": null,
900
+ "arrivalStationCode": null,
901
+ "arrivalStationName": null,
902
+ "authenticationToken": null,
903
+ "classCode": null,
904
+ "classCodeQuantity": null,
905
+ "companyName": null,
906
+ "compartments": null,
907
+ "crossBorder": null,
908
+ "departureDateTime": null,
909
+ "departureDateTimeInUTC": null,
910
+ "departureStationCode": null,
911
+ "departureStationName": null,
912
+ "destinationEstimatedArrivalDateTime": null,
913
+ "destinationPostedArrivalDateTime": null,
914
+ "destinationScheduledArrivalDateTime": "2017-10-12T20:06:00",
915
+ "destinationStationCode": "BBY",
916
+ "destinationStatusComment": null,
917
+ "displayRoomNumbers": false,
918
+ "duration": null,
919
+ "durationMinutes": 0,
920
+ "isAlternative": null,
921
+ "isBus": null,
922
+ "isRestrictive": null,
923
+ "originEstimatedDepartureDateTime": null,
924
+ "originPostedDepartureDateTime": null,
925
+ "originScheduledDepartureDateTime": "2017-10-12T19:19:00",
926
+ "originStationCode": "PVD",
927
+ "originStatusComment": null,
928
+ "rooms": null,
929
+ "routeName": "Northeast Regional",
930
+ "seats": null,
931
+ "segmentServiceStatus": "false",
932
+ "serviceMessage": null,
933
+ "serviceStatus": null,
934
+ "trainNumber": "176",
935
+ "validate": true,
936
+ "versionNumber": null
937
+ }
938
+ ]
939
+ },
940
+ {
941
+ "alternative": null,
942
+ "bedRoomClassPrice": null,
943
+ "duration": null,
944
+ "durationMinutes": 0,
945
+ "journeyTotalFare": null,
946
+ "lowFareClass": null,
947
+ "modifiable": null,
948
+ "passenger": null,
949
+ "refId": null,
950
+ "rooms": null,
951
+ "seats": null,
952
+ "segments": [
953
+ {
954
+ "additionalInfo": null,
955
+ "amenities": null,
956
+ "ancillary": null,
957
+ "appType": null,
958
+ "arrivalDateTime": null,
959
+ "arrivalStationCode": null,
960
+ "arrivalStationName": null,
961
+ "authenticationToken": null,
962
+ "classCode": null,
963
+ "classCodeQuantity": null,
964
+ "companyName": null,
965
+ "compartments": null,
966
+ "crossBorder": null,
967
+ "departureDateTime": null,
968
+ "departureDateTimeInUTC": null,
969
+ "departureStationCode": null,
970
+ "departureStationName": null,
971
+ "destinationEstimatedArrivalDateTime": null,
972
+ "destinationPostedArrivalDateTime": null,
973
+ "destinationScheduledArrivalDateTime": "2017-10-12T20:40:00",
974
+ "destinationStationCode": "BBY",
975
+ "destinationStatusComment": null,
976
+ "displayRoomNumbers": false,
977
+ "duration": null,
978
+ "durationMinutes": 0,
979
+ "isAlternative": null,
980
+ "isBus": null,
981
+ "isRestrictive": null,
982
+ "originEstimatedDepartureDateTime": null,
983
+ "originPostedDepartureDateTime": null,
984
+ "originScheduledDepartureDateTime": "2017-10-12T19:56:00",
985
+ "originStationCode": "PVD",
986
+ "originStatusComment": null,
987
+ "rooms": null,
988
+ "routeName": "Acela Express",
989
+ "seats": null,
990
+ "segmentServiceStatus": "false",
991
+ "serviceMessage": null,
992
+ "serviceStatus": null,
993
+ "trainNumber": "2168",
994
+ "validate": true,
995
+ "versionNumber": null
996
+ }
997
+ ]
998
+ },
999
+ {
1000
+ "alternative": null,
1001
+ "bedRoomClassPrice": null,
1002
+ "duration": null,
1003
+ "durationMinutes": 0,
1004
+ "journeyTotalFare": null,
1005
+ "lowFareClass": null,
1006
+ "modifiable": null,
1007
+ "passenger": null,
1008
+ "refId": null,
1009
+ "rooms": null,
1010
+ "seats": null,
1011
+ "segments": [
1012
+ {
1013
+ "additionalInfo": null,
1014
+ "amenities": null,
1015
+ "ancillary": null,
1016
+ "appType": null,
1017
+ "arrivalDateTime": null,
1018
+ "arrivalStationCode": null,
1019
+ "arrivalStationName": null,
1020
+ "authenticationToken": null,
1021
+ "classCode": null,
1022
+ "classCodeQuantity": null,
1023
+ "companyName": null,
1024
+ "compartments": null,
1025
+ "crossBorder": null,
1026
+ "departureDateTime": null,
1027
+ "departureDateTimeInUTC": null,
1028
+ "departureStationCode": null,
1029
+ "departureStationName": null,
1030
+ "destinationEstimatedArrivalDateTime": null,
1031
+ "destinationPostedArrivalDateTime": null,
1032
+ "destinationScheduledArrivalDateTime": "2017-10-12T21:38:00",
1033
+ "destinationStationCode": "BBY",
1034
+ "destinationStatusComment": null,
1035
+ "displayRoomNumbers": false,
1036
+ "duration": null,
1037
+ "durationMinutes": 0,
1038
+ "isAlternative": null,
1039
+ "isBus": null,
1040
+ "isRestrictive": null,
1041
+ "originEstimatedDepartureDateTime": null,
1042
+ "originPostedDepartureDateTime": null,
1043
+ "originScheduledDepartureDateTime": "2017-10-12T20:54:00",
1044
+ "originStationCode": "PVD",
1045
+ "originStatusComment": null,
1046
+ "rooms": null,
1047
+ "routeName": "Acela Express",
1048
+ "seats": null,
1049
+ "segmentServiceStatus": "false",
1050
+ "serviceMessage": null,
1051
+ "serviceStatus": null,
1052
+ "trainNumber": "2170",
1053
+ "validate": true,
1054
+ "versionNumber": null
1055
+ }
1056
+ ]
1057
+ },
1058
+ {
1059
+ "alternative": null,
1060
+ "bedRoomClassPrice": null,
1061
+ "duration": null,
1062
+ "durationMinutes": 0,
1063
+ "journeyTotalFare": null,
1064
+ "lowFareClass": null,
1065
+ "modifiable": null,
1066
+ "passenger": null,
1067
+ "refId": null,
1068
+ "rooms": null,
1069
+ "seats": null,
1070
+ "segments": [
1071
+ {
1072
+ "additionalInfo": null,
1073
+ "amenities": null,
1074
+ "ancillary": null,
1075
+ "appType": null,
1076
+ "arrivalDateTime": null,
1077
+ "arrivalStationCode": null,
1078
+ "arrivalStationName": null,
1079
+ "authenticationToken": null,
1080
+ "classCode": null,
1081
+ "classCodeQuantity": null,
1082
+ "companyName": null,
1083
+ "compartments": null,
1084
+ "crossBorder": null,
1085
+ "departureDateTime": null,
1086
+ "departureDateTimeInUTC": null,
1087
+ "departureStationCode": null,
1088
+ "departureStationName": null,
1089
+ "destinationEstimatedArrivalDateTime": null,
1090
+ "destinationPostedArrivalDateTime": null,
1091
+ "destinationScheduledArrivalDateTime": "2017-10-12T22:02:00",
1092
+ "destinationStationCode": "BBY",
1093
+ "destinationStatusComment": null,
1094
+ "displayRoomNumbers": false,
1095
+ "duration": null,
1096
+ "durationMinutes": 0,
1097
+ "isAlternative": null,
1098
+ "isBus": null,
1099
+ "isRestrictive": null,
1100
+ "originEstimatedDepartureDateTime": null,
1101
+ "originPostedDepartureDateTime": null,
1102
+ "originScheduledDepartureDateTime": "2017-10-12T21:16:00",
1103
+ "originStationCode": "PVD",
1104
+ "originStatusComment": null,
1105
+ "rooms": null,
1106
+ "routeName": "Northeast Regional",
1107
+ "seats": null,
1108
+ "segmentServiceStatus": "false",
1109
+ "serviceMessage": null,
1110
+ "serviceStatus": null,
1111
+ "trainNumber": "94",
1112
+ "validate": true,
1113
+ "versionNumber": null
1114
+ }
1115
+ ]
1116
+ },
1117
+ {
1118
+ "alternative": null,
1119
+ "bedRoomClassPrice": null,
1120
+ "duration": null,
1121
+ "durationMinutes": 0,
1122
+ "journeyTotalFare": null,
1123
+ "lowFareClass": null,
1124
+ "modifiable": null,
1125
+ "passenger": null,
1126
+ "refId": null,
1127
+ "rooms": null,
1128
+ "seats": null,
1129
+ "segments": [
1130
+ {
1131
+ "additionalInfo": null,
1132
+ "amenities": null,
1133
+ "ancillary": null,
1134
+ "appType": null,
1135
+ "arrivalDateTime": null,
1136
+ "arrivalStationCode": null,
1137
+ "arrivalStationName": null,
1138
+ "authenticationToken": null,
1139
+ "classCode": null,
1140
+ "classCodeQuantity": null,
1141
+ "companyName": null,
1142
+ "compartments": null,
1143
+ "crossBorder": null,
1144
+ "departureDateTime": null,
1145
+ "departureDateTimeInUTC": null,
1146
+ "departureStationCode": null,
1147
+ "departureStationName": null,
1148
+ "destinationEstimatedArrivalDateTime": null,
1149
+ "destinationPostedArrivalDateTime": null,
1150
+ "destinationScheduledArrivalDateTime": "2017-10-12T22:44:00",
1151
+ "destinationStationCode": "BBY",
1152
+ "destinationStatusComment": null,
1153
+ "displayRoomNumbers": false,
1154
+ "duration": null,
1155
+ "durationMinutes": 0,
1156
+ "isAlternative": null,
1157
+ "isBus": null,
1158
+ "isRestrictive": null,
1159
+ "originEstimatedDepartureDateTime": null,
1160
+ "originPostedDepartureDateTime": null,
1161
+ "originScheduledDepartureDateTime": "2017-10-12T22:03:00",
1162
+ "originStationCode": "PVD",
1163
+ "originStatusComment": null,
1164
+ "rooms": null,
1165
+ "routeName": "Acela Express",
1166
+ "seats": null,
1167
+ "segmentServiceStatus": "false",
1168
+ "serviceMessage": null,
1169
+ "serviceStatus": null,
1170
+ "trainNumber": "2172",
1171
+ "validate": true,
1172
+ "versionNumber": null
1173
+ }
1174
+ ]
1175
+ }
1176
+ ],
1177
+ "responseCode": "SUCCESS"
1178
+ }
1179
+ http_version:
1180
+ recorded_at: Thu, 12 Oct 2017 01:37:19 GMT
1181
+ recorded_with: VCR 2.9.3