aftership 1.0.3 → 3.0.0
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.
- 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: []
|