ticketevolution-ruby 0.7.3 → 0.7.4

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.
Files changed (44) hide show
  1. data/README.markdown +8 -1
  2. data/lib/ticket_evolution.rb +8 -4
  3. data/lib/ticket_evolution/account.rb +1 -0
  4. data/lib/ticket_evolution/client.rb +1 -0
  5. data/lib/ticket_evolution/companies.rb +9 -0
  6. data/lib/ticket_evolution/company.rb +5 -0
  7. data/lib/ticket_evolution/core/endpoint/request_handler.rb +1 -1
  8. data/lib/ticket_evolution/core/model.rb +0 -25
  9. data/lib/ticket_evolution/core/model/parental_behavior.rb +25 -0
  10. data/lib/ticket_evolution/modules/create.rb +12 -5
  11. data/lib/ticket_evolution/modules/destroy.rb +31 -0
  12. data/lib/ticket_evolution/modules/show.rb +2 -2
  13. data/lib/ticket_evolution/rate_option.rb +5 -0
  14. data/lib/ticket_evolution/rate_options.rb +6 -0
  15. data/lib/ticket_evolution/track_detail.rb +5 -0
  16. data/lib/ticket_evolution/track_details.rb +6 -0
  17. data/lib/ticket_evolution/version.rb +1 -1
  18. data/spec/fixtures/fake.rb +3 -3
  19. data/spec/fixtures/net/core/connection.yml +124 -116
  20. data/spec/fixtures/net/endpoints/clients/create.yml +222 -178
  21. data/spec/fixtures/net/endpoints/clients/update_fail.yml +684 -605
  22. data/spec/fixtures/net/endpoints/clients/update_success.yml +604 -537
  23. data/spec/fixtures/net/endpoints/company/destroy_error.yml +120 -0
  24. data/spec/fixtures/net/endpoints/company/destroy_success.yml +284 -0
  25. data/spec/fixtures/net/endpoints/track_details/show.yml +58 -0
  26. data/spec/lib/ticket_evolution/account_spec.rb +1 -0
  27. data/spec/lib/ticket_evolution/client_spec.rb +1 -1
  28. data/spec/lib/ticket_evolution/companies_spec.rb +15 -0
  29. data/spec/lib/ticket_evolution/company_spec.rb +39 -0
  30. data/spec/lib/ticket_evolution/core/model_spec.rb +0 -18
  31. data/spec/lib/ticket_evolution/rate_option_spec.rb +8 -0
  32. data/spec/lib/ticket_evolution/rate_options_spec.rb +7 -0
  33. data/spec/lib/ticket_evolution/track_detail_spec.rb +8 -0
  34. data/spec/lib/ticket_evolution/track_details_spec.rb +32 -0
  35. data/spec/shared_examples/endpoints/create.rb +28 -8
  36. data/spec/shared_examples/endpoints/destroy.rb +67 -0
  37. data/spec/shared_examples/endpoints/show.rb +1 -1
  38. data/spec/shared_examples/models.rb +38 -0
  39. data/spec/spec_helper.rb +1 -0
  40. data/spec/support/stub_models.rb +20 -0
  41. data/ticketevolution-ruby.gemspec +1 -1
  42. metadata +55 -27
  43. data/lib/ticket_evolution/core/models/samples.rb +0 -11
  44. data/lib/ticket_evolution/core/samples.rb +0 -6
@@ -0,0 +1,120 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :delete
5
+ uri: https://api.sandbox.ticketevolution.com:443/companies/123
6
+ body: "null"
7
+ headers:
8
+ accept:
9
+ - application/vnd.ticketevolution.api+json; version=8
10
+ x-signature:
11
+ - ABfTLIYWRE7amwTaTn/5NZZ2r7pbwbnpIL+BSOjd6FU=
12
+ x-token:
13
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
14
+ response: !ruby/struct:VCR::Response
15
+ status: !ruby/struct:VCR::ResponseStatus
16
+ code: 401
17
+ message: Unauthorized
18
+ headers:
19
+ x-ua-compatible:
20
+ - IE=Edge,chrome=1
21
+ strict-transport-security:
22
+ - max-age=31536000
23
+ x-powered-by:
24
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
25
+ connection:
26
+ - keep-alive
27
+ content-type:
28
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
29
+ server:
30
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
31
+ x-runtime:
32
+ - "0.032961"
33
+ cache-control:
34
+ - no-cache
35
+ status:
36
+ - "401"
37
+ transfer-encoding:
38
+ - chunked
39
+ body: "{\"error\":\"Your signature is incorrect. Please ensure you are generating it correctly\"}"
40
+ http_version: "1.1"
41
+ - !ruby/struct:VCR::HTTPInteraction
42
+ request: !ruby/struct:VCR::Request
43
+ method: :delete
44
+ uri: https://api.sandbox.ticketevolution.com:443/companies/123
45
+ body: !!null
46
+ str: ""
47
+ "@taguri": x-private:null
48
+ headers:
49
+ accept:
50
+ - application/vnd.ticketevolution.api+json; version=8
51
+ x-signature:
52
+ - ABfTLIYWRE7amwTaTn/5NZZ2r7pbwbnpIL+BSOjd6FU=
53
+ x-token:
54
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
55
+ response: !ruby/struct:VCR::Response
56
+ status: !ruby/struct:VCR::ResponseStatus
57
+ code: 404
58
+ message: Not Found
59
+ headers:
60
+ x-ua-compatible:
61
+ - IE=Edge,chrome=1
62
+ strict-transport-security:
63
+ - max-age=31536000
64
+ x-powered-by:
65
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
66
+ connection:
67
+ - keep-alive
68
+ content-type:
69
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
70
+ server:
71
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
72
+ x-runtime:
73
+ - "0.035334"
74
+ cache-control:
75
+ - no-cache
76
+ status:
77
+ - "404"
78
+ transfer-encoding:
79
+ - chunked
80
+ body: "{\"message\":\"Couldn't find Company with ID=123\",\"error\":\"Not Found\"}"
81
+ http_version: "1.1"
82
+ - !ruby/struct:VCR::HTTPInteraction
83
+ request: !ruby/struct:VCR::Request
84
+ method: :delete
85
+ uri: https://api.sandbox.ticketevolution.com:443/companies/123
86
+ body:
87
+ headers:
88
+ accept:
89
+ - application/vnd.ticketevolution.api+json; version=8
90
+ x-signature:
91
+ - ABfTLIYWRE7amwTaTn/5NZZ2r7pbwbnpIL+BSOjd6FU=
92
+ x-token:
93
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
94
+ response: !ruby/struct:VCR::Response
95
+ status: !ruby/struct:VCR::ResponseStatus
96
+ code: 404
97
+ message: Not Found
98
+ headers:
99
+ x-ua-compatible:
100
+ - IE=Edge,chrome=1
101
+ strict-transport-security:
102
+ - max-age=31536000
103
+ x-powered-by:
104
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
105
+ connection:
106
+ - keep-alive
107
+ content-type:
108
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
109
+ server:
110
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
111
+ x-runtime:
112
+ - "0.036336"
113
+ cache-control:
114
+ - no-cache
115
+ status:
116
+ - "404"
117
+ transfer-encoding:
118
+ - chunked
119
+ body: "{\"message\":\"Couldn't find Company with ID=123\",\"error\":\"Not Found\"}"
120
+ http_version: "1.1"
@@ -0,0 +1,284 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :post
5
+ uri: https://api.sandbox.ticketevolution.com:443/companies
6
+ body: "{\"companies\":[{\"name\":\"foo\"}]}"
7
+ headers:
8
+ accept:
9
+ - application/vnd.ticketevolution.api+json; version=8
10
+ x-signature:
11
+ - EG4WM6cCGRrNN+iGEvlgZEr7JaKRa24qrgl+sUC4vZI=
12
+ x-token:
13
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
14
+ response: !ruby/struct:VCR::Response
15
+ status: !ruby/struct:VCR::ResponseStatus
16
+ code: 422
17
+ message: Unprocessable Entity
18
+ headers:
19
+ x-ua-compatible:
20
+ - IE=Edge,chrome=1
21
+ strict-transport-security:
22
+ - max-age=31536000
23
+ x-powered-by:
24
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
25
+ connection:
26
+ - keep-alive
27
+ content-type:
28
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
29
+ server:
30
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
31
+ x-runtime:
32
+ - "0.024809"
33
+ cache-control:
34
+ - no-cache
35
+ status:
36
+ - "422"
37
+ transfer-encoding:
38
+ - chunked
39
+ body: "{\"companies\":[{\"errors\":{\"name\":[\"has already been taken\"]},\"name\":\"foo\",\"id\":null,\"updated_at\":null}]}"
40
+ http_version: "1.1"
41
+ - !ruby/struct:VCR::HTTPInteraction
42
+ request: !ruby/struct:VCR::Request
43
+ method: :post
44
+ uri: https://api.sandbox.ticketevolution.com:443/companies
45
+ body: "{\"companies\":[{\"name\":\"foo 1234567890hyq334d578foq5y7f83ho47o5qyyyyyyyfh7w34odhq57y345q78do5yq378\"}]}"
46
+ headers:
47
+ accept:
48
+ - application/vnd.ticketevolution.api+json; version=8
49
+ x-signature:
50
+ - Sq2H7sZxB7yTkuNnzJYUV812Dgyrnbt64d21conigDk=
51
+ x-token:
52
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
53
+ response: !ruby/struct:VCR::Response
54
+ status: !ruby/struct:VCR::ResponseStatus
55
+ code: 201
56
+ message: Created
57
+ headers:
58
+ x-ua-compatible:
59
+ - IE=Edge,chrome=1
60
+ strict-transport-security:
61
+ - max-age=31536000
62
+ x-powered-by:
63
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
64
+ connection:
65
+ - keep-alive
66
+ content-type:
67
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
68
+ server:
69
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
70
+ x-runtime:
71
+ - "0.026599"
72
+ cache-control:
73
+ - no-cache
74
+ status:
75
+ - "201"
76
+ transfer-encoding:
77
+ - chunked
78
+ body: "{\"companies\":[{\"name\":\"foo 1234567890hyq334d578foq5y7f83ho47o5qyyyyyyyfh7w34odhq57y345q78do5yq378\",\"url\":\"/companies/2\",\"id\":\"2\",\"updated_at\":\"2012-03-02T15:46:33Z\"}]}"
79
+ http_version: "1.1"
80
+ - !ruby/struct:VCR::HTTPInteraction
81
+ request: !ruby/struct:VCR::Request
82
+ method: :delete
83
+ uri: https://api.sandbox.ticketevolution.com:443/companies/2
84
+ body: !!null
85
+ str: ""
86
+ "@taguri": x-private:null
87
+ headers:
88
+ accept:
89
+ - application/vnd.ticketevolution.api+json; version=8
90
+ x-signature:
91
+ - 2m9QEFXbsNVUFAwGtTVj7MhRr/pjhuW+i3yig++GqtY=
92
+ x-token:
93
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
94
+ response: !ruby/struct:VCR::Response
95
+ status: !ruby/struct:VCR::ResponseStatus
96
+ code: 200
97
+ message: OK
98
+ headers:
99
+ x-ua-compatible:
100
+ - IE=Edge,chrome=1
101
+ strict-transport-security:
102
+ - max-age=31536000
103
+ etag:
104
+ - "\"b3b6a289a338cd1f92dd2726dfa65c32\""
105
+ x-powered-by:
106
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
107
+ connection:
108
+ - keep-alive
109
+ content-type:
110
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
111
+ server:
112
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
113
+ x-runtime:
114
+ - "0.037375"
115
+ cache-control:
116
+ - max-age=0, private, must-revalidate
117
+ status:
118
+ - "200"
119
+ transfer-encoding:
120
+ - chunked
121
+ body: "{\"companies\":[{\"id\":\"2\"}]}"
122
+ http_version: "1.1"
123
+ - !ruby/struct:VCR::HTTPInteraction
124
+ request: !ruby/struct:VCR::Request
125
+ method: :get
126
+ uri: https://api.sandbox.ticketevolution.com:443/companies/2
127
+ body: !!null
128
+ str: ""
129
+ "@taguri": x-private:null
130
+ headers:
131
+ accept:
132
+ - application/vnd.ticketevolution.api+json; version=8
133
+ accept-encoding:
134
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
135
+ x-signature:
136
+ - NGiawSRv2i1WOiMYQdAe1zcuff4oBJJPjOG9BYXl5mw=
137
+ x-token:
138
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
139
+ response: !ruby/struct:VCR::Response
140
+ status: !ruby/struct:VCR::ResponseStatus
141
+ code: 404
142
+ message: Not Found
143
+ headers:
144
+ x-ua-compatible:
145
+ - IE=Edge,chrome=1
146
+ strict-transport-security:
147
+ - max-age=31536000
148
+ x-powered-by:
149
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
150
+ connection:
151
+ - keep-alive
152
+ content-type:
153
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
154
+ server:
155
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
156
+ x-runtime:
157
+ - "0.037544"
158
+ cache-control:
159
+ - no-cache
160
+ status:
161
+ - "404"
162
+ transfer-encoding:
163
+ - chunked
164
+ body: "{\"message\":\"Couldn't find Company with ID=2\",\"error\":\"Not Found\"}"
165
+ http_version: "1.1"
166
+ - !ruby/struct:VCR::HTTPInteraction
167
+ request: !ruby/struct:VCR::Request
168
+ method: :post
169
+ uri: https://api.sandbox.ticketevolution.com:443/companies
170
+ body: "{\"companies\":[{\"name\":\"foo 1234567890hasdfasdfyq334d578foq5y7f83ho47o5qyyyyyyyfh7w34odhq57y345q78do5yq378\"}]}"
171
+ headers:
172
+ accept:
173
+ - application/vnd.ticketevolution.api+json; version=8
174
+ x-signature:
175
+ - vFWxJ97HyogcobMc775iSDX8d09CFMYJfYx2B1tW2es=
176
+ x-token:
177
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
178
+ response: !ruby/struct:VCR::Response
179
+ status: !ruby/struct:VCR::ResponseStatus
180
+ code: 201
181
+ message: Created
182
+ headers:
183
+ x-ua-compatible:
184
+ - IE=Edge,chrome=1
185
+ strict-transport-security:
186
+ - max-age=31536000
187
+ x-powered-by:
188
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
189
+ connection:
190
+ - keep-alive
191
+ content-type:
192
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
193
+ server:
194
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
195
+ x-runtime:
196
+ - "0.026714"
197
+ cache-control:
198
+ - no-cache
199
+ status:
200
+ - "201"
201
+ transfer-encoding:
202
+ - chunked
203
+ body: "{\"companies\":[{\"name\":\"foo 1234567890hasdfasdfyq334d578foq5y7f83ho47o5qyyyyyyyfh7w34odhq57y345q78do5yq378\",\"url\":\"/companies/3\",\"id\":\"3\",\"updated_at\":\"2012-03-02T17:28:17Z\"}]}"
204
+ http_version: "1.1"
205
+ - !ruby/struct:VCR::HTTPInteraction
206
+ request: !ruby/struct:VCR::Request
207
+ method: :delete
208
+ uri: https://api.sandbox.ticketevolution.com:443/companies/3
209
+ body:
210
+ headers:
211
+ accept:
212
+ - application/vnd.ticketevolution.api+json; version=8
213
+ x-signature:
214
+ - u0+GsMN1vadKVAv7/4JhwLLIz2B+5eyzS5Ki+y7JmBA=
215
+ x-token:
216
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
217
+ response: !ruby/struct:VCR::Response
218
+ status: !ruby/struct:VCR::ResponseStatus
219
+ code: 200
220
+ message: OK
221
+ headers:
222
+ x-ua-compatible:
223
+ - IE=Edge,chrome=1
224
+ strict-transport-security:
225
+ - max-age=31536000
226
+ etag:
227
+ - "\"b044558020cd25a758a15992faf2f726\""
228
+ x-powered-by:
229
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
230
+ connection:
231
+ - keep-alive
232
+ content-type:
233
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
234
+ server:
235
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
236
+ x-runtime:
237
+ - "0.023576"
238
+ cache-control:
239
+ - max-age=0, private, must-revalidate
240
+ status:
241
+ - "200"
242
+ transfer-encoding:
243
+ - chunked
244
+ body: "{\"companies\":[{\"id\":\"3\"}]}"
245
+ http_version: "1.1"
246
+ - !ruby/struct:VCR::HTTPInteraction
247
+ request: !ruby/struct:VCR::Request
248
+ method: :get
249
+ uri: https://api.sandbox.ticketevolution.com:443/companies/3
250
+ body:
251
+ headers:
252
+ accept:
253
+ - application/vnd.ticketevolution.api+json; version=8
254
+ x-signature:
255
+ - JmHIDFLwnFm4ndbM5Lj8PMbGMvAvUI5GdbYiyoCLdkw=
256
+ x-token:
257
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
258
+ response: !ruby/struct:VCR::Response
259
+ status: !ruby/struct:VCR::ResponseStatus
260
+ code: 404
261
+ message: Not Found
262
+ headers:
263
+ x-ua-compatible:
264
+ - IE=Edge,chrome=1
265
+ strict-transport-security:
266
+ - max-age=31536000
267
+ x-powered-by:
268
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
269
+ connection:
270
+ - keep-alive
271
+ content-type:
272
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
273
+ server:
274
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
275
+ x-runtime:
276
+ - "0.052870"
277
+ cache-control:
278
+ - no-cache
279
+ status:
280
+ - "404"
281
+ transfer-encoding:
282
+ - chunked
283
+ body: "{\"message\":\"Couldn't find Company with ID=3\",\"error\":\"Not Found\"}"
284
+ http_version: "1.1"
@@ -0,0 +1,58 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://api.sandbox.ticketevolution.com:443/track_details/793309874808
6
+ body: !!null
7
+ headers:
8
+ x-signature:
9
+ - C2hegpejQNS62M8N2GSWm0zVK86rRJGfdy+5twmS/cY=
10
+ x-token:
11
+ - b2b5a7a33b1a78896ed1b53d81c5c9cc
12
+ accept:
13
+ - application/vnd.ticketevolution.api+json; version=8
14
+ accept-encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response: !ruby/struct:VCR::Response
17
+ status: !ruby/struct:VCR::ResponseStatus
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ content-type:
22
+ - application/vnd.ticketevolution.api+json; version=8; charset=utf-8
23
+ transfer-encoding:
24
+ - chunked
25
+ connection:
26
+ - keep-alive
27
+ status:
28
+ - '200'
29
+ x-powered-by:
30
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
31
+ etag:
32
+ - ! '"dcefa6c70ba0235df3bc901704e9a8dd"'
33
+ cache-control:
34
+ - max-age=0, private, must-revalidate
35
+ x-runtime:
36
+ - '1.149867'
37
+ x-ua-compatible:
38
+ - IE=Edge,chrome=1
39
+ strict-transport-security:
40
+ - max-age=31536000
41
+ server:
42
+ - nginx/1.0.11 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
43
+ body: ! '{"packages":[{"service_type":"FEDEX_EXPRESS_SAVER","destination_city":"NEW
44
+ YORK","delivery_at":"2012-03-09T12:43:00-08:00","unique_identifier":"2455994000~793309874808","origin_country":null,"destination_country":"US","destination_state":"NY","origin_city":null,"status":"Delivered","origin_state":null,"origin_residential":false,"events":[{"type":"DL","occured_at":"2012-03-09T12:43:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
45
+ YORK","name":"Delivered","postal_code":"10003"},{"type":"RR","occured_at":"2012-03-09T08:01:12-08:00","country":null,"state":null,"residential":false,"city":null,"name":"Hold
46
+ at FedEx location request received","postal_code":"10003"},{"type":"OD","occured_at":"2012-03-09T04:17:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
47
+ YORK","name":"On FedEx vehicle for delivery","postal_code":"10014"},{"type":"AF","occured_at":"2012-03-08T12:46:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
48
+ YORK","name":"At local FedEx facility","postal_code":"10014"},{"type":"DE","occured_at":"2012-03-08T11:41:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
49
+ YORK","name":"Delivery exception","postal_code":"10014"},{"type":"OD","occured_at":"2012-03-08T05:31:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
50
+ YORK","name":"On FedEx vehicle for delivery","postal_code":"10014"},{"type":"AR","occured_at":"2012-03-08T04:45:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
51
+ YORK","name":"At local FedEx facility","postal_code":"10014"},{"type":"DP","occured_at":"2012-03-08T00:45:00-08:00","country":"US","state":"NJ","residential":false,"city":"NEWARK","name":"Departed
52
+ FedEx location","postal_code":"07114"},{"type":"AR","occured_at":"2012-03-07T20:21:00-08:00","country":"US","state":"NJ","residential":false,"city":"NEWARK","name":"Arrived
53
+ at FedEx location","postal_code":"07114"},{"type":"DP","occured_at":"2012-03-07T19:44:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
54
+ YORK","name":"Left FedEx origin facility","postal_code":"10014"},{"type":"PU","occured_at":"2012-03-07T15:17:00-08:00","country":"US","state":"NY","residential":false,"city":"NEW
55
+ YORK","name":"Picked up","postal_code":"10014"},{"type":"OC","occured_at":"2012-03-07T07:11:47-08:00","country":null,"state":null,"residential":false,"city":null,"name":"Shipment
56
+ information sent to FedEx","postal_code":null}],"destination_residential":false,"signature_name":"Signature
57
+ not required"}],"duplicate_waybill":false}'
58
+ http_version: '1.1'