etracking 1.1.0 → 2.3.6
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 +4 -4
- data/lib/etracking/client.rb +44 -40
- metadata +1 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 109eef0561972cb5ba8f72a264734ad47d98172a2284ba048a00a314590bee0d
|
4
|
+
data.tar.gz: 8b8f4932e6646a0057f3caa305932f22f7c0ae82195042a0551b361936ab216b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bce76fcdfc9c70ae0cec774a1ed303e86e06c77b94840d08f2bb19bc5a721a3dd03e139f1f62997c128e311a59a1965399c322891cf8b53f3c5dfee52efccb1
|
7
|
+
data.tar.gz: 6b8c1faa164d5fa1447d46054b19ff3194faea61306129d1eb47e4b5a810a393750e8e69b48d84b4d3978488bf82e8c0d26cf5f8b9342e2d7d65440525e46e60
|
data/lib/etracking/client.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'uri'
|
2
|
+
require 'net/http'
|
3
|
+
require 'json'
|
3
4
|
|
4
5
|
module Etracking
|
5
6
|
|
@@ -13,7 +14,7 @@ module Etracking
|
|
13
14
|
|
14
15
|
class Client
|
15
16
|
# @return [String]
|
16
|
-
attr_accessor :api_key, :key_secret, :language
|
17
|
+
attr_accessor :api_key, :key_secret, :language, :thailand_post_api_key
|
17
18
|
|
18
19
|
# Initialize a new client.
|
19
20
|
#
|
@@ -27,74 +28,77 @@ module Etracking
|
|
27
28
|
end
|
28
29
|
|
29
30
|
def endpoint
|
30
|
-
'http://
|
31
|
+
'http://etrackings.com/api/v2/tracks/'
|
31
32
|
end
|
32
33
|
|
33
|
-
def
|
34
|
-
response = RestClient::Request.new({
|
35
|
-
url: url,
|
36
|
-
method: method.to_sym,
|
37
|
-
headers: headers,
|
38
|
-
payload: payload.to_json
|
39
|
-
}).execute do |response, request, result|
|
40
|
-
return JSON.parse(response.to_str)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def headers
|
34
|
+
def headers(request)
|
45
35
|
api_key_required
|
46
36
|
key_secret_required
|
47
37
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
38
|
+
request['etracking-api-key'] = api_key
|
39
|
+
request['etracking-key-secret'] = key_secret
|
40
|
+
request['accept-language'] = language || 'TH'
|
41
|
+
request['content-type'] = 'application/json'
|
42
|
+
|
43
|
+
request
|
44
|
+
end
|
45
|
+
|
46
|
+
def rest_api(path, payload)
|
47
|
+
url = URI("#{endpoint}#{path}")
|
48
|
+
|
49
|
+
http = Net::HTTP.new(url.host, url.port);
|
50
|
+
request = Net::HTTP::Post.new(url)
|
51
|
+
request = headers(request)
|
52
|
+
request.body = payload.to_json
|
53
|
+
|
54
|
+
response = http.request(request)
|
55
|
+
JSON.parse(response.read_body, { symbolize_names: true } )
|
54
56
|
end
|
55
57
|
|
56
|
-
def
|
57
|
-
|
58
|
-
"#{endpoint}/api/v2/tracks/#{service}",
|
59
|
-
"post",
|
60
|
-
headers,
|
61
|
-
payload_tracking_number(tracking_number)
|
62
|
-
)
|
58
|
+
def track(service_name, tracking_number)
|
59
|
+
rest_api('/find', payload_with_service_and_tracking_number(service_name, tracking_number))
|
63
60
|
end
|
64
61
|
|
65
62
|
def dhl_express(tracking_number)
|
66
|
-
|
63
|
+
rest_api('/dhl_express', payload_tracking_number(tracking_number))
|
67
64
|
end
|
68
65
|
|
69
66
|
def flash_express(tracking_number)
|
70
|
-
|
67
|
+
rest_api('/flash_express', payload_tracking_number(tracking_number))
|
71
68
|
end
|
72
69
|
|
73
70
|
def jt_express(tracking_number)
|
74
|
-
|
71
|
+
rest_api('/jt_express', payload_tracking_number(tracking_number))
|
75
72
|
end
|
76
73
|
|
77
74
|
def kerry_express(tracking_number)
|
78
|
-
|
75
|
+
rest_api('/kerry_express', payload_tracking_number(tracking_number))
|
79
76
|
end
|
80
77
|
|
81
78
|
def lazada_express(tracking_number)
|
82
|
-
|
79
|
+
rest_api('/lazada_express', payload_tracking_number(tracking_number))
|
83
80
|
end
|
84
81
|
|
85
82
|
def scg_express(tracking_number)
|
86
|
-
|
83
|
+
rest_api('/scg_express', payload_tracking_number(tracking_number))
|
87
84
|
end
|
88
85
|
|
89
86
|
def shopee_express(tracking_number)
|
90
|
-
|
87
|
+
rest_api('/shopee_express', payload_tracking_number(tracking_number))
|
91
88
|
end
|
92
89
|
|
93
|
-
|
94
|
-
|
90
|
+
def thailand_post(tracking_number)
|
91
|
+
thailand_post_api_key
|
92
|
+
|
93
|
+
api('thailand_post', payload_tracking_number(tracking_number))
|
94
|
+
end
|
95
95
|
|
96
|
-
|
97
|
-
|
96
|
+
def payload_with_service_and_tracking_number(service_name, tracking_number)
|
97
|
+
{
|
98
|
+
service_name: service_name,
|
99
|
+
tracking_number: tracking_number
|
100
|
+
}
|
101
|
+
end
|
98
102
|
|
99
103
|
def payload_tracking_number(tracking_number)
|
100
104
|
{
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: etracking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Saharak Manoo
|
@@ -10,20 +10,6 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2020-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rest-client
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0.1
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 2.0.1
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: addressable
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|