ticketevolution-ruby 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
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'