aftership 4.3.1 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fcc3b043085339e0e1cb60f310a933893d00efa4
4
- data.tar.gz: 3641f16ac1b4142cfcb2fa69bcca7e7abab61038
2
+ SHA256:
3
+ metadata.gz: 3511e0822f0b20e5cb61396d89191f215f3dc10ea98b8bd496d756e3992e115b
4
+ data.tar.gz: fe7997ade299d0171aa4c759b4cae347b342ee7f92d235404880a8661583b920
5
5
  SHA512:
6
- metadata.gz: 88c9cac67bbf63bc514a033b25198492cf92f547c6b724a9272ec22b777f2772189a1ceedc95e64f760d01b15a91800d4bc432d411608109aa0e00bc544c8072
7
- data.tar.gz: e93c3e5e190cc98d6285ed8d5fdf43954371fca422dd3975867ed9f9d929f824c9433729fc0c29c6284da83ef44f6b2258ca92238c9b9235e18f4f1a30f82fae
6
+ metadata.gz: 5688761bfae46437bab5dba2ca5dd399cdd1bf131dc19401dc00bd09c76507fc980029117f05a4193484fc1dfd57e5444b78b8993eacaba65ba64237526e42c8
7
+ data.tar.gz: 1d9228cd05c2cc5e2b4d260d33e0aa3c5ff1c9f80169017a89e4eedd8a4d04978b14913df0c1d2e82d1bd742c481646932d47e189f1c6486548a7f0d4ecf2c52
data/README.md CHANGED
@@ -9,6 +9,9 @@ This extension helps developers to integrate with AfterShip easily.
9
9
  AfterShip provides an automated way for online merchants to track packages and send their customers delivery status notifications. Customers no longer need to deal with tracking numbers and track packages on their own. With AfterShip, online merchants extend their customer service after the point of purchase by keeping their customers actively informed, while saving time and money by reducing customers’ questions about the status of their purchase delivery.
10
10
 
11
11
  ### Changes
12
+ * 2016-01-11 4.3.1
13
+ - Updated gem `httpclient` version to 2.7.1
14
+
12
15
  * 2015-12-14 4.3.0
13
16
  - Added rescue methods for parsing JSON, and try to retrieve error codes from cloudflare
14
17
  - Added /trackings/exports method
@@ -37,7 +40,7 @@ AfterShip provides an automated way for online merchants to track packages and s
37
40
  1. Add the following line to your application's Gemfile
38
41
 
39
42
  ```
40
- gem "aftership", "~> 4.1.0"
43
+ gem "aftership", "~> 4.3.1"
41
44
  ```
42
45
 
43
46
  2. Run bundler
@@ -1,10 +1,10 @@
1
- require 'httpclient'
2
- require 'json'
1
+ require 'faraday'
2
+ require 'faraday_middleware'
3
3
 
4
4
  module AfterShip
5
5
  module V4
6
6
  class Base
7
- class AfterShipError < StandardError;
7
+ class AfterShipError < StandardError
8
8
  end
9
9
  attr_reader :http_verb_method, :end_point, :query, :body
10
10
 
@@ -18,75 +18,63 @@ module AfterShip
18
18
  @body = body
19
19
  @trial = 0
20
20
 
21
- @client = HTTPClient.new
21
+ @client = Faraday.new do |faraday|
22
+ faraday.url_prefix = "#{AfterShip::URL}/v4/"
23
+ faraday.request :url_encoded
24
+ faraday.response :json, content_type: 'application/json'
25
+ faraday.adapter :net_http
26
+ end
22
27
  end
23
28
 
24
29
  def call
25
-
26
- header = {'aftership-api-key' => AfterShip.api_key, 'Content-Type' => 'application/json'}
27
-
28
- parameters = {
29
- :query => query,
30
- :body => body.to_json,
31
- :header => header
32
- }
30
+ headers = { 'aftership-api-key' => AfterShip.api_key }
33
31
 
34
32
  cf_ray = ''
35
- response = nil
33
+ output = nil
34
+ uri = @client.build_url(end_point, query)
36
35
 
37
36
  loop do
38
- response = @client.send(http_verb_method, url, parameters)
39
-
40
- if response.headers
41
- cf_ray = response.headers['CF-RAY']
42
- end
37
+ response = @client.run_request(http_verb_method, uri, body, headers)
43
38
 
39
+ cf_ray = response.headers['CF-RAY'] if response.headers
44
40
 
45
41
  if response.body
46
42
  begin
47
- response = JSON.parse(response.body)
43
+ output = response.body
48
44
  @trial = MAX_TRIAL + 1
49
- rescue
45
+ rescue StandardError
50
46
  @trial += 1
51
47
 
52
48
  sleep CALL_SLEEP
53
49
 
54
- response = {
55
- :meta => {
56
- :code => 500,
57
- :message => 'Something went wrong on AfterShip\'s end.',
58
- :type => 'InternalError'
59
- },
60
- :data => {
61
- :body => response.body,
62
- :cf_ray => cf_ray
63
- }
50
+ output = {
51
+ meta: {
52
+ code: 500,
53
+ message: 'Something went wrong on AfterShip\'s end.',
54
+ type: 'InternalError'
55
+ },
56
+ data: {
57
+ body: response.body,
58
+ cf_ray: cf_ray
59
+ }
64
60
  }
65
61
  end
66
62
  else
67
- response = {
68
- :meta => {
69
- :code => 500,
70
- :message => 'Something went wrong on AfterShip\'s end.',
71
- :type => 'InternalError'
72
- },
73
- :data => {
74
- }
63
+ output = {
64
+ meta: {
65
+ code: 500,
66
+ message: 'Something went wrong on AfterShip\'s end.',
67
+ type: 'InternalError'
68
+ },
69
+ data: {
70
+ }
75
71
  }
76
72
  end
77
73
 
78
74
  break if @trial > MAX_TRIAL
79
75
  end
80
-
81
- response
76
+ output
82
77
  end
83
-
84
- private
85
-
86
- def url
87
- "#{AfterShip::URL}/v4/#{end_point.to_s}"
88
- end
89
-
90
78
  end
91
79
  end
92
80
  end
@@ -3,26 +3,25 @@ require File.dirname(__FILE__) + '/base'
3
3
  module AfterShip
4
4
  module V4
5
5
  class Courier < AfterShip::V4::Base
6
-
7
- #GET /couriers
8
- #Return a list of couriers activated at your AfterShip account.
6
+ # GET /couriers
7
+ # Return a list of couriers activated at your AfterShip account.
9
8
  def self.get
10
9
  new(:get, 'couriers').call
11
10
  end
12
11
 
13
- #GET /couriers/all
14
- #Return a list of all couriers.
12
+ # GET /couriers/all
13
+ # Return a list of all couriers.
15
14
  def self.get_all
16
15
  new(:get, 'couriers/all').call
17
16
  end
18
17
 
19
- #POST /couriers/detect
20
- #Return a list of matched couriers based on tracking number format and selected couriers or a list of couriers.
18
+ # POST /couriers/detect
19
+ # Return a list of matched couriers based on tracking number format and selected couriers or a list of couriers.
21
20
  def self.detect(tracking = nil)
22
- if tracking == nil
23
- raise ArgumentError.new('tracking object is required.')
21
+ if tracking.nil?
22
+ raise ArgumentError, 'tracking object is required.'
24
23
  else
25
- new(:post, 'couriers/detect', {}, {:tracking => tracking}).call
24
+ new(:post, 'couriers/detect', {}, { tracking: tracking }).call
26
25
  end
27
26
  end
28
27
  end
@@ -3,15 +3,13 @@ require File.dirname(__FILE__) + '/base'
3
3
  module AfterShip
4
4
  module V4
5
5
  class LastCheckpoint < AfterShip::V4::Base
6
-
7
6
  def self.get(slug = '', tracking_number = '')
8
7
  if slug.empty? || tracking_number.empty?
9
- raise ArgumentError.new('slug and tracking_number are required.')
8
+ raise ArgumentError, 'slug and tracking_number are required.'
10
9
  else
11
10
  new(:get, "last_checkpoint/#{slug}/#{tracking_number}").call
12
11
  end
13
12
  end
14
-
15
13
  end
16
14
  end
17
15
  end
@@ -3,82 +3,83 @@ require File.dirname(__FILE__) + '/base'
3
3
  module AfterShip
4
4
  module V4
5
5
  class Tracking < AfterShip::V4::Base
6
-
7
- #POST /trackings
6
+ # POST /trackings
8
7
  def self.create(tracking_number, params = {})
9
8
  if tracking_number.empty? || tracking_number.nil?
10
- raise ArgumentError.new('tracking_number is required.')
9
+ raise ArgumentError, 'tracking_number is required.'
11
10
  else
12
- query_hash = {:tracking_number => tracking_number}
11
+ query_hash = { tracking_number: tracking_number }
13
12
  query_hash.merge!(params)
14
- body = {:tracking => query_hash}
13
+ body = { tracking: query_hash }
15
14
  new(:post, 'trackings', {}, body).call
16
15
  end
17
16
  end
18
17
 
19
- #POST /trackings/:slug/:tracking_number/retrack
20
- def self.retrack(slug, tracking_number)
18
+ # POST /trackings/:slug/:tracking_number/retrack
19
+ def self.retrack(slug, tracking_number, params = {})
21
20
  if slug.empty? || slug.nil? || tracking_number.empty? || tracking_number.nil?
22
- raise ArgumentError.new('slug and tracking_number are required.')
21
+ raise ArgumentError, 'slug and tracking_number are required.'
23
22
  end
24
- new(:post, "trackings/#{slug}/#{tracking_number}/retrack").call
23
+
24
+ new(:post, "trackings/#{slug}/#{tracking_number}/retrack", params).call
25
25
  end
26
26
 
27
- #DELETE /trackings/:slug/:tracking_number
28
- def self.delete(slug, tracking_number)
27
+ # DELETE /trackings/:slug/:tracking_number
28
+ def self.delete(slug, tracking_number, params = {})
29
29
  if slug.empty? || slug.nil? || tracking_number.empty? || tracking_number.nil?
30
- raise ArgumentError.new('slug and tracking_number are required.')
30
+ raise ArgumentError, 'slug and tracking_number are required.'
31
31
  end
32
- new(:delete, "trackings/#{slug}/#{tracking_number}").call
32
+
33
+ new(:delete, "trackings/#{slug}/#{tracking_number}", params).call
33
34
  end
34
35
 
35
- #DELETE /trackings/:id
36
+ # DELETE /trackings/:id
36
37
  def self.delete_by_id(id)
37
- if id.empty? || id.nil?
38
- raise ArgumentError.new('id is required.')
39
- end
38
+ raise ArgumentError, 'id is required.' if id.empty? || id.nil?
39
+
40
40
  new(:delete, "trackings/#{id}").call
41
41
  end
42
42
 
43
- #GET /trackings/:slug/:tracking_number
43
+ # GET /trackings/:slug/:tracking_number
44
44
  def self.get(slug, tracking_number, params = {})
45
45
  if slug.empty? || slug.nil? || tracking_number.empty? || tracking_number.nil?
46
- raise ArgumentError.new('slug and tracking_number are required.')
46
+ raise ArgumentError, 'slug and tracking_number are required.'
47
47
  end
48
+
48
49
  new(:get, "trackings/#{slug}/#{tracking_number}", params).call
49
50
  end
50
51
 
51
- #GET /trackings/:id
52
+ # GET /trackings/:id
52
53
  def self.get_by_id(id, params = {})
53
- if id.empty? || id.nil?
54
- raise ArgumentError.new('id is required.')
55
- end
54
+ raise ArgumentError, 'id is required.' if id.empty? || id.nil?
55
+
56
56
  new(:get, "trackings/#{id}", params).call
57
57
  end
58
58
 
59
- #GET /trackings
59
+ # GET /trackings
60
60
  def self.get_all(params = {})
61
61
  new(:get, 'trackings', params).call
62
62
  end
63
63
 
64
- #GET /trackings/exports
64
+ # GET /trackings/exports
65
65
  def self.export(params = {})
66
66
  new(:get, 'trackings/exports', params).call
67
67
  end
68
68
 
69
- #PUT /trackings/:slug/:tracking_number
69
+ # PUT /trackings/:slug/:tracking_number
70
70
  def self.update(slug, tracking_number, params = {})
71
71
  if slug.empty? || slug.nil? || tracking_number.empty? || tracking_number.nil?
72
- raise ArgumentError.new('slug and tracking_number are required.')
72
+ raise ArgumentError, 'slug and tracking_number are required.'
73
73
  end
74
- body = {:tracking => params}
74
+
75
+ body = { tracking: params }
75
76
  new(:put, "trackings/#{slug}/#{tracking_number}", {}, body).call
76
77
  end
77
78
 
78
- #Deprecated
79
- #POST /trackings/:slug/:tracking_number/reactivate
80
- def self.reactivate(slug, tracking_number)
81
- raise StandardError.new('This method is deprecated, please use "retrack" instead')
79
+ # Deprecated
80
+ # POST /trackings/:slug/:tracking_number/reactivate
81
+ def self.reactivate(_slug, _tracking_number)
82
+ raise StandardError, 'This method is deprecated, please use "retrack" instead'
82
83
  end
83
84
  end
84
85
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aftership
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.1
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AfterShip Limited
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-11 00:00:00.000000000 Z
11
+ date: 2021-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: httpclient
14
+ name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.7.1
19
+ version: 1.3.0
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: 2.7.1
26
+ version: 1.3.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: faraday_middleware
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.14.1
34
- type: :development
33
+ version: 1.0.0
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 2.14.1
40
+ version: 1.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.14.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.14.1
55
69
  description: Developed for easy integration with AfterShip
56
70
  email:
57
71
  - support@aftership.com
@@ -77,7 +91,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
91
  requirements:
78
92
  - - ">="
79
93
  - !ruby/object:Gem::Version
80
- version: 1.8.7
94
+ version: 2.4.0
81
95
  required_rubygems_version: !ruby/object:Gem::Requirement
82
96
  requirements:
83
97
  - - ">="
@@ -85,8 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
99
  version: '0'
86
100
  requirements:
87
101
  - none
88
- rubyforge_project:
89
- rubygems_version: 2.5.1
102
+ rubygems_version: 3.1.2
90
103
  signing_key:
91
104
  specification_version: 4
92
105
  summary: Formerly known as aftership_ruby and a wrapper for AfterShip API. Support