aftership 1.0.3 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +9 -9
- data/lib/aftership.rb +1 -2
- data/lib/aftership/base.rb +19 -12
- data/lib/aftership/courier.rb +13 -3
- data/lib/aftership/last_checkpoint.rb +17 -0
- data/lib/aftership/tracking.rb +46 -13
- metadata +15 -12
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YzUzZTRkZWFkYWJlNjIyYmEwNzU0MWY3NTcyZTdiOTJmZDg4ODVkOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
7
|
-
|
6
|
+
NTU5ODdmOWVlZDdlMWM3NjI0ZTY1MWZlYzBlYTE0YTc1MDQ3OGVmYg==
|
7
|
+
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmNiMjBhMmYzMTAzMjE3NDBhNGE5MDI5NGM2NDE2ODU0ODFjYjE2OWQxY2Ey
|
10
|
+
ZTgxZDI3ZDdhZWZhMTVhODJlZTU0NzYyNWY1ZjJkNTYwN2I2YzFlNDJmYjJj
|
11
|
+
ODk2ODRlNjFmMGY1NWU4YzQzYWNmYTdmMzY0MDhjNjgyM2U2ZmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGRmMjEzY2JlYmI4MGY4ZDAzNTE5OTUzZDM4ZWNlYmNmMzQ2NDJkYzUzZjNi
|
14
|
+
ZGVhNjE4MzM1NzQwMTc2NDc1YTQzNTY5OWI5NTY5NzM5ZTk3ZWZlYzgzY2Rj
|
15
|
+
NjM0ZWQ1MjI3ZjE0ZTFiNjNjODFkNjVjMGM4MDBmNDRhODNmM2Y=
|
data/lib/aftership.rb
CHANGED
@@ -2,13 +2,12 @@ $:.unshift File.dirname(__FILE__)
|
|
2
2
|
|
3
3
|
require "aftership/courier"
|
4
4
|
require "aftership/tracking"
|
5
|
+
require "aftership/last_checkpoint"
|
5
6
|
|
6
7
|
module AfterShip
|
7
8
|
class << self;
|
8
9
|
attr_accessor :api_key
|
9
10
|
end
|
10
11
|
|
11
|
-
VERSION = "2"
|
12
12
|
URL = "https://api.aftership.com"
|
13
|
-
FORMAT = "json"
|
14
13
|
end
|
data/lib/aftership/base.rb
CHANGED
@@ -4,25 +4,31 @@ require 'json'
|
|
4
4
|
HTTPI.log = false
|
5
5
|
|
6
6
|
module AfterShip
|
7
|
-
module
|
7
|
+
module V3
|
8
8
|
class Base
|
9
|
-
def self.call(http_verb_method, *args)
|
10
|
-
url = "#{AfterShip::URL}/v#{AfterShip::VERSION}/#{args.first.to_s}.#{AfterShip::FORMAT}"
|
11
|
-
req_body = {:api_key => AfterShip.api_key}
|
12
|
-
if args.last.is_a?(Hash)
|
13
|
-
args.last.each do |k, v|
|
14
|
-
HTTPI.logger.warn("this field #{k} should be array") if %w(emails smses).include?(k.to_s) && !v.is_a?(Array)
|
15
|
-
end
|
16
9
|
|
17
|
-
|
18
|
-
|
19
|
-
|
10
|
+
def self.call(http_verb_method, end_point, params = {}, body = {})
|
11
|
+
url = "#{AfterShip::URL}/v3/#{end_point.to_s}"
|
12
|
+
unless params.empty?
|
13
|
+
url += '?' + Rack::Utils.build_query(params)
|
14
|
+
end
|
15
|
+
|
16
|
+
unless body.empty?
|
17
|
+
body.each do |k, v|
|
18
|
+
HTTPI.logger.warn("the #{k} field should be an array") if %w(emails smses).include?(k.to_s) && !v.is_a?(Array)
|
19
|
+
end
|
20
20
|
end
|
21
21
|
|
22
22
|
request = HTTPI::Request.new(url)
|
23
|
-
request.
|
23
|
+
request.headers = {"aftership-api-key" => AfterShip.api_key}
|
24
|
+
request.body = body.to_json
|
25
|
+
|
26
|
+
puts "request"
|
27
|
+
puts request.url
|
28
|
+
|
24
29
|
response = HTTPI.send(http_verb_method.to_sym, request)
|
25
30
|
|
31
|
+
# different
|
26
32
|
if response.nil?
|
27
33
|
raise(AfterShipError.new("response is nil"))
|
28
34
|
else
|
@@ -31,6 +37,7 @@ module AfterShip
|
|
31
37
|
end
|
32
38
|
|
33
39
|
class AfterShipError < StandardError;
|
40
|
+
|
34
41
|
end
|
35
42
|
end
|
36
43
|
end
|
data/lib/aftership/courier.rb
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/base'
|
2
2
|
|
3
3
|
module AfterShip
|
4
|
-
module
|
5
|
-
class Courier < AfterShip::
|
6
|
-
|
4
|
+
module V3
|
5
|
+
class Courier < AfterShip::V3::Base
|
6
|
+
|
7
|
+
def self.get
|
7
8
|
call(:get, "couriers")
|
8
9
|
end
|
10
|
+
|
11
|
+
def self.detect(tracking_number = '')
|
12
|
+
if tracking_number.empty?
|
13
|
+
raise ArgumentError.new("tracking_number is required.")
|
14
|
+
else
|
15
|
+
call(:get, "couriers/detect/#{tracking_number}")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
end
|
10
20
|
end
|
11
21
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/base'
|
2
|
+
|
3
|
+
module AfterShip
|
4
|
+
module V3
|
5
|
+
class LastCheckpoint < AfterShip::V3::Base
|
6
|
+
|
7
|
+
def self.get(slug = '', tracking_number = '')
|
8
|
+
if slug.empty? || tracking_number.empty?
|
9
|
+
raise ArgumentError.new("slug and tracking_number are required.")
|
10
|
+
else
|
11
|
+
call(:get, "last_checkpoint/#{slug}/#{tracking_number}")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/aftership/tracking.rb
CHANGED
@@ -1,26 +1,59 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/base'
|
2
2
|
|
3
3
|
module AfterShip
|
4
|
-
module
|
5
|
-
class Tracking < AfterShip::
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
module V3
|
5
|
+
class Tracking < AfterShip::V3::Base
|
6
|
+
|
7
|
+
#POST /trackings
|
8
|
+
def self.create(tracking_number, params = {})
|
9
|
+
if tracking_number.empty?
|
10
|
+
raise ArgumentError.new("The tracking_number is required.")
|
11
|
+
else
|
12
|
+
query_hash = {:tracking_number => tracking_number}
|
13
|
+
query_hash.merge!(params)
|
14
|
+
body = {:tracking => query_hash}
|
15
|
+
call(:post, "trackings", {}, body)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
#DELETE /trackings/:slug/:tracking_number
|
20
|
+
def self.delete(slug, tracking_number)
|
21
|
+
if slug.empty? || tracking_number.empty?
|
22
|
+
raise ArgumentError.new("slug and tracking_number are required.")
|
9
23
|
end
|
24
|
+
call(:delete, "trackings/#{slug}/#{tracking_number}")
|
25
|
+
end
|
10
26
|
|
11
|
-
|
12
|
-
|
13
|
-
call(:
|
27
|
+
#GET /trackings
|
28
|
+
def self.get_multi(params = {})
|
29
|
+
call(:get, "trackings", params)
|
14
30
|
end
|
15
31
|
|
16
|
-
|
17
|
-
|
18
|
-
|
32
|
+
#GET /trackings/:slug/:tracking_number
|
33
|
+
def self.get(slug, tracking_number)
|
34
|
+
if slug.empty? || tracking_number.empty?
|
35
|
+
raise ArgumentError.new("slug and tracking_number are required.")
|
19
36
|
end
|
37
|
+
call(:get, "trackings/#{slug}/#{tracking_number}")
|
38
|
+
end
|
20
39
|
|
21
|
-
|
22
|
-
|
40
|
+
#PUT /trackings/:slug/:tracking_number
|
41
|
+
def self.update(slug, tracking_number, params = {})
|
42
|
+
if slug.empty? || tracking_number.empty?
|
43
|
+
raise ArgumentError.new("slug and tracking_number are required.")
|
44
|
+
end
|
45
|
+
body = {"tracking" => params}
|
46
|
+
call(:put, "trackings/#{slug}/#{tracking_number}", {}, body)
|
23
47
|
end
|
48
|
+
|
49
|
+
#POST /trackings/:slug/:tracking_number/reactivate
|
50
|
+
def self.reactivate(slug, tracking_number)
|
51
|
+
if slug.empty? || tracking_number.empty?
|
52
|
+
raise ArgumentError.new("slug and tracking_number are required.")
|
53
|
+
end
|
54
|
+
call(:post, "trackings/#{slug}/#{tracking_number}/reactivate")
|
55
|
+
end
|
56
|
+
|
24
57
|
end
|
25
58
|
end
|
26
59
|
end
|
metadata
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aftership
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- AfterShip.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpi
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.1'
|
27
27
|
description: Developed for easy integration with AfterShip
|
28
|
-
email:
|
28
|
+
email: support@aftership.com
|
29
29
|
executables: []
|
30
30
|
extensions: []
|
31
31
|
extra_rdoc_files: []
|
@@ -33,9 +33,11 @@ files:
|
|
33
33
|
- lib/aftership.rb
|
34
34
|
- lib/aftership/base.rb
|
35
35
|
- lib/aftership/courier.rb
|
36
|
+
- lib/aftership/last_checkpoint.rb
|
36
37
|
- lib/aftership/tracking.rb
|
37
|
-
homepage:
|
38
|
-
licenses:
|
38
|
+
homepage: https://www.aftership.com
|
39
|
+
licenses:
|
40
|
+
- MIT
|
39
41
|
metadata: {}
|
40
42
|
post_install_message:
|
41
43
|
rdoc_options: []
|
@@ -54,8 +56,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
56
|
requirements:
|
55
57
|
- none
|
56
58
|
rubyforge_project:
|
57
|
-
rubygems_version: 2.
|
59
|
+
rubygems_version: 2.2.2
|
58
60
|
signing_key:
|
59
61
|
specification_version: 4
|
60
|
-
summary: Formerly known as aftership_ruby and a wrapper for AfterShip API
|
62
|
+
summary: Formerly known as aftership_ruby and a wrapper for AfterShip API. Support
|
63
|
+
the latest V3 API
|
61
64
|
test_files: []
|