after_ship 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +119 -42
- data/lib/after_ship/core/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2612a655857c96bc533957c3da0cf03989d36e3
|
4
|
+
data.tar.gz: 41fee10a3620d19bda2dbbda5b251aa0d3e0e9cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67eeb6d9f3805833a5b2a82c96a6c6ba4aeef97cbe9f156d2f036abed2de4f02b7abecbcf9e640af9966cc495a8be901539726673bda5612b388f6c1830fcfbf
|
7
|
+
data.tar.gz: 3bf88f54b44171695ad65a5c516f4a7e6d56b0de4ce54a57425bbfaef788fb57d2f59d0b0b22def4bafa55343e36284b8c080db260739d50cb800f5db63acce2
|
data/README.md
CHANGED
@@ -2,40 +2,46 @@
|
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/ollie/after_ship.svg?branch=master)](https://travis-ci.org/ollie/after_ship)
|
4
4
|
|
5
|
-
A smallish library to talking to AfterShip via v4 API.
|
5
|
+
A smallish library to talking to AfterShip via v4 API. It currently supports
|
6
|
+
those methods:
|
7
|
+
|
8
|
+
* Get a list of trackings,
|
9
|
+
* Get a particular tracking (with tracking_number + slug combination),
|
10
|
+
* Create a tracking,
|
11
|
+
* Update a tracking (with tracking_number + slug combination),
|
12
|
+
* Get activated couriers.
|
13
|
+
|
14
|
+
I may implement other methods if I need them or if you are interested.
|
6
15
|
|
7
16
|
You will need an AfterShip API key, see here https://www.aftership.com/docs/api/4.
|
8
17
|
The JSON is parsed by MultiJson (https://github.com/intridea/multi_json) so
|
9
18
|
you may want to drop in your favorite JSON engine.
|
10
19
|
|
11
|
-
## Installation
|
12
|
-
|
13
|
-
Add this line to your application's Gemfile:
|
14
|
-
|
15
|
-
```ruby
|
16
|
-
gem 'after_ship', git: 'https://github.com/ollie/after_ship.git'
|
17
|
-
```
|
18
|
-
|
19
|
-
And then execute:
|
20
|
-
|
21
|
-
$ bundle
|
22
|
-
|
23
20
|
## Usage
|
24
21
|
|
25
|
-
Init the client
|
22
|
+
### Init the client
|
26
23
|
|
27
24
|
```ruby
|
28
25
|
client = AfterShip.new(api_key: 'your-aftership-api-key')
|
29
26
|
```
|
30
27
|
|
31
|
-
Get a list of trackings
|
32
|
-
https://www.aftership.com/docs/api/4/trackings/get-trackings
|
28
|
+
### [Get a list of trackings][trackings_url]
|
33
29
|
|
34
30
|
```ruby
|
35
|
-
client.trackings
|
31
|
+
trackings = client.trackings
|
32
|
+
|
33
|
+
trackings.each do |tracking|
|
34
|
+
puts tracking.tracking_number
|
35
|
+
|
36
|
+
tracking.checkpoints.each do |checkpoint|
|
37
|
+
puts "#{ checkpoint.city } #{ checkpoint.checkpoint_time }"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
```
|
36
41
|
|
37
|
-
|
42
|
+
Returns a list of `AfterShip::Tracking` objects:
|
38
43
|
|
44
|
+
```
|
39
45
|
[
|
40
46
|
#<AfterShip::Tracking ...>,
|
41
47
|
#<AfterShip::Tracking ...>,
|
@@ -43,14 +49,21 @@ client.trackings
|
|
43
49
|
]
|
44
50
|
```
|
45
51
|
|
46
|
-
Get a tracking
|
47
|
-
https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number
|
52
|
+
### [Get a tracking][tracking_url]
|
48
53
|
|
49
54
|
```ruby
|
50
|
-
client.tracking('tracking-number', 'ups')
|
55
|
+
tracking = client.tracking('tracking-number', 'ups')
|
51
56
|
|
52
|
-
|
57
|
+
puts tracking.tracking_number
|
53
58
|
|
59
|
+
tracking.checkpoints.each do |checkpoint|
|
60
|
+
puts "#{ checkpoint.city } #{ checkpoint.checkpoint_time }"
|
61
|
+
end
|
62
|
+
```
|
63
|
+
|
64
|
+
Returns a `AfterShip::Tracking` object or raises a `AfterShip::Error::NotFound` if not found:
|
65
|
+
|
66
|
+
```
|
54
67
|
#<AfterShip::Tracking:0x007f838ef44e58
|
55
68
|
@active=false,
|
56
69
|
@android=[],
|
@@ -107,38 +120,44 @@ client.tracking('tracking-number', 'ups')
|
|
107
120
|
>
|
108
121
|
```
|
109
122
|
|
110
|
-
Create a new tracking
|
111
|
-
https://www.aftership.com/docs/api/4/trackings/post-trackings
|
123
|
+
### [Create a new tracking][create_tracking_url]
|
112
124
|
|
113
125
|
```ruby
|
114
|
-
client.create_tracking('tracking-number', 'ups', order_id: 'external-id')
|
126
|
+
tracking = client.create_tracking('tracking-number', 'ups', order_id: 'external-id')
|
127
|
+
```
|
115
128
|
|
116
|
-
|
117
|
-
|
129
|
+
Returns a `AfterShip::Tracking` object or raises a `AfterShip::Error::TrackingAlreadyExists`
|
130
|
+
if tracking already exists:
|
118
131
|
|
132
|
+
```
|
119
133
|
#<AfterShip::Tracking ...>
|
120
134
|
```
|
121
135
|
|
122
|
-
Update a tracking
|
123
|
-
https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number
|
136
|
+
### [Update a tracking][update_tracking_url]
|
124
137
|
|
125
138
|
```ruby
|
126
|
-
client.update_tracking('tracking-number', 'ups', order_id: 'external-id')
|
139
|
+
tracking = client.update_tracking('tracking-number', 'ups', order_id: 'external-id')
|
140
|
+
```
|
127
141
|
|
128
|
-
|
129
|
-
# AfterShip::Error::TrackingAlreadyExists:
|
142
|
+
Returns a `AfterShip::Tracking` object or raises a `AfterShip::Error::NotFound` if not found:
|
130
143
|
|
144
|
+
```
|
131
145
|
#<AfterShip::Tracking ...>
|
132
146
|
```
|
133
147
|
|
134
|
-
Get activated couriers
|
135
|
-
https://www.aftership.com/docs/api/4/couriers/get-couriers
|
148
|
+
### [Get activated couriers][couriers_url]
|
136
149
|
|
137
150
|
```ruby
|
138
|
-
client.couriers
|
151
|
+
couriers = client.couriers
|
152
|
+
|
153
|
+
couriers.each do |courier|
|
154
|
+
puts "#{ courier.name } #{ courier.other_name }"
|
155
|
+
end
|
156
|
+
```
|
139
157
|
|
140
|
-
|
158
|
+
Returns a list of `AfterShip::Courier` objects:
|
141
159
|
|
160
|
+
```
|
142
161
|
[
|
143
162
|
#<AfterShip::Courier:0x007fa2771d4bf8
|
144
163
|
@name="USPS",
|
@@ -152,11 +171,69 @@ client.couriers
|
|
152
171
|
]
|
153
172
|
```
|
154
173
|
|
174
|
+
### [Errors][errors_url]
|
175
|
+
|
176
|
+
The library can respond with all of the v4 errors. The first colum is
|
177
|
+
HTTP status code, the second meta code. The indentation indicates inheritance.
|
178
|
+
|
179
|
+
```
|
180
|
+
| HTTP | Meta | Error class |
|
181
|
+
|------+------+--------------------------------------------|
|
182
|
+
| 400 | 400 | AfterShip::Error::BadRequest |
|
183
|
+
| 400 | 4001 | AfterShip::Error::InvalidJsonData |
|
184
|
+
| 400 | 4002 | AfterShip::Error::InvalidJsonData |
|
185
|
+
| 400 | 4003 | AfterShip::Error::TrackingAlreadyExists |
|
186
|
+
| 400 | 4004 | AfterShip::Error::TrackingDoesNotExist |
|
187
|
+
| 400 | 4005 | AfterShip::Error::TrackingNumberInvalid |
|
188
|
+
| 400 | 4006 | AfterShip::Error::TrackingObjectRequired |
|
189
|
+
| 400 | 4007 | AfterShip::Error::TrackingNumberRequired |
|
190
|
+
| 400 | 4008 | AfterShip::Error::FieldInvalid |
|
191
|
+
| 400 | 4009 | AfterShip::Error::FieldRequired |
|
192
|
+
| 400 | 4010 | AfterShip::Error::SlugInvalid |
|
193
|
+
| 400 | 4011 | AfterShip::Error::CourierFieldInvalid |
|
194
|
+
| 400 | 4012 | AfterShip::Error::CourierNotDetected |
|
195
|
+
| 400 | 4013 | AfterShip::Error::RetrackNotAllowed |
|
196
|
+
| 400 | 4016 | AfterShip::Error::RetrackNotAllowed |
|
197
|
+
| 400 | 4014 | AfterShip::Error::NotificationRequired |
|
198
|
+
| 400 | 4015 | AfterShip::Error::IdInvalid |
|
199
|
+
| 401 | 401 | AfterShip::Error::Unauthorized |
|
200
|
+
| 403 | 403 | AfterShip::Error::Forbidden |
|
201
|
+
| 404 | 404 | AfterShip::Error::NotFound |
|
202
|
+
| 429 | 429 | AfterShip::Error::TooManyRequests |
|
203
|
+
| 500 | 500 | AfterShip::Error::InternalError |
|
204
|
+
| 502 | 502 | AfterShip::Error::InternalError |
|
205
|
+
| 503 | 503 | AfterShip::Error::InternalError |
|
206
|
+
| 504 | 504 | AfterShip::Error::InternalError |
|
207
|
+
```
|
208
|
+
|
209
|
+
## Installation
|
210
|
+
|
211
|
+
Add this line to your application's Gemfile:
|
212
|
+
|
213
|
+
```ruby
|
214
|
+
gem 'after_ship'
|
215
|
+
```
|
216
|
+
|
217
|
+
And then execute:
|
218
|
+
|
219
|
+
$ bundle
|
220
|
+
|
221
|
+
Or install it yourself as:
|
222
|
+
|
223
|
+
$ gem install after_ship
|
224
|
+
|
155
225
|
## Contributing
|
156
226
|
|
157
|
-
0. E-mail me or create an issue
|
158
|
-
1. Fork it (https://github.com/ollie/after_ship/fork)
|
159
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
160
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
161
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
162
|
-
5. Create a new Pull Request
|
227
|
+
0. E-mail me or create an issue.
|
228
|
+
1. Fork it (https://github.com/ollie/after_ship/fork).
|
229
|
+
2. Create your feature branch (`git checkout -b my-new-feature`).
|
230
|
+
3. Commit your changes (`git commit -am 'Add some feature'`).
|
231
|
+
4. Push to the branch (`git push origin my-new-feature`).
|
232
|
+
5. Create a new Pull Request.
|
233
|
+
|
234
|
+
[trackings_url]: https://www.aftership.com/docs/api/4/trackings/get-trackings
|
235
|
+
[tracking_url]: https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number
|
236
|
+
[create_tracking_url]: https://www.aftership.com/docs/api/4/trackings/post-trackings
|
237
|
+
[update_tracking_url]: https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number
|
238
|
+
[couriers_url]: https://www.aftership.com/docs/api/4/couriers/get-couriers
|
239
|
+
[errors_url]: https://www.aftership.com/docs/api/4/errors
|