etrackings 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 +7 -0
- data/bin/etrackings +12 -0
- data/lib/etrackings.rb +1 -0
- data/lib/etrackings/client.rb +157 -0
- metadata +116 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b71f64036cd7a473dc78696a928dc8f926e1ceba32d96bcec3d81dc5adad217a
|
4
|
+
data.tar.gz: 3be5ca1b6f05b6e62f6dfb21ad2f9c735fcd283128a155ddbe6b0a50e7ce5962
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 564b3c301ad5c250a431695b42a43c9dd08befb863112e358a8f21ce84095a070df8a0c483b272d57bad90c7eb711a01aeb412b30fc87d0b1e4975d233f04597
|
7
|
+
data.tar.gz: bc45b0f4758ba89b832eac36e750e48be94d4dd7f33d9bd05428643d750842f7599036d056e4b3b4711af5fa89b936d168c0c3d1b05d13666a7f6a00db1d4629
|
data/bin/etrackings
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'etrackings'
|
2
|
+
|
3
|
+
def client
|
4
|
+
@client ||= Etrackings::Client.new do |config|
|
5
|
+
config.api_key = 'l72f8c215460ac4c2ea72702c3a48b5c62'
|
6
|
+
config.key_secret = '01a3c4687d6a4f93a44e90d33911ba67'
|
7
|
+
config.language = 'TH'
|
8
|
+
config.is_develop = true
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
puts "Test"
|
data/lib/etrackings.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'etrackings/client'
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require 'uri'
|
2
|
+
require 'net/http'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Etrackings
|
6
|
+
# API Client of ETrackings SDK for Ruby
|
7
|
+
#
|
8
|
+
# @client ||= Etrackings::Client.new do |config|
|
9
|
+
# config.api_key = ENV["etrackings_api_key"]
|
10
|
+
# config.key_secret = ENV["etrackings_key_secret"]
|
11
|
+
# config.language = ENV["etrackings_language"] || 'TH'
|
12
|
+
# end
|
13
|
+
|
14
|
+
class Client
|
15
|
+
# @return [String]
|
16
|
+
attr_accessor :api_key, :key_secret, :language
|
17
|
+
|
18
|
+
# Initialize a new client.
|
19
|
+
#
|
20
|
+
# @param options [Hash]
|
21
|
+
# @return [Etracking::Client]
|
22
|
+
def initialize(options = {})
|
23
|
+
options.each do |key, value|
|
24
|
+
instance_variable_set("@#{key}", value)
|
25
|
+
end
|
26
|
+
yield(self) if block_given?
|
27
|
+
end
|
28
|
+
|
29
|
+
def endpoint
|
30
|
+
'https://fast.etrackings.com/v3/tracks'
|
31
|
+
end
|
32
|
+
|
33
|
+
def rest_api(path, payload)
|
34
|
+
api_key_required
|
35
|
+
key_secret_required
|
36
|
+
|
37
|
+
url = URI("#{endpoint}#{path}")
|
38
|
+
|
39
|
+
https = Net::HTTP.new(url.host, url.port);
|
40
|
+
https.use_ssl = true
|
41
|
+
https.read_timeout = 12
|
42
|
+
|
43
|
+
request = Net::HTTP::Post.new(url)
|
44
|
+
request["Etrackings-api-key"] = api_key
|
45
|
+
request["Etrackings-key-secret"] = key_secret
|
46
|
+
request["Accept-Language"] = language || 'th'
|
47
|
+
request["Content-Type"] = ["application/json", "text/plain"]
|
48
|
+
request.body = payload.to_json
|
49
|
+
response = https.request(request)
|
50
|
+
|
51
|
+
JSON.parse(response.read_body, { symbolize_names: true })
|
52
|
+
end
|
53
|
+
|
54
|
+
def track(courier, tracking_no)
|
55
|
+
rest_api('/find', payload_with_courier_and_tracking_no(courier, tracking_no))
|
56
|
+
end
|
57
|
+
|
58
|
+
def dhl_express(tracking_no)
|
59
|
+
rest_api('/dhl-express', payload_tracking_no(tracking_no))
|
60
|
+
end
|
61
|
+
|
62
|
+
def flash_express(tracking_no)
|
63
|
+
rest_api('/flash-express', payload_tracking_no(tracking_no))
|
64
|
+
end
|
65
|
+
|
66
|
+
def jt_express(tracking_no)
|
67
|
+
rest_api('/jt-express', payload_tracking_no(tracking_no))
|
68
|
+
end
|
69
|
+
|
70
|
+
def kerry_express(tracking_no)
|
71
|
+
rest_api('/kerry-express', payload_tracking_no(tracking_no))
|
72
|
+
end
|
73
|
+
|
74
|
+
def scg_express(tracking_no)
|
75
|
+
rest_api('/scg-express', payload_tracking_no(tracking_no))
|
76
|
+
end
|
77
|
+
|
78
|
+
def shopee_express(tracking_no)
|
79
|
+
rest_api('/shopee-express', payload_tracking_no(tracking_no))
|
80
|
+
end
|
81
|
+
|
82
|
+
def thailand_post(tracking_no)
|
83
|
+
rest_api('/thailand-post', payload_tracking_no(tracking_no))
|
84
|
+
end
|
85
|
+
|
86
|
+
def alpha_fast(tracking_no)
|
87
|
+
rest_api('/alpha-fast', payload_tracking_no(tracking_no))
|
88
|
+
end
|
89
|
+
|
90
|
+
def best_express(tracking_no)
|
91
|
+
rest_api('/best-express', payload_tracking_no(tracking_no))
|
92
|
+
end
|
93
|
+
|
94
|
+
def cj_logistics(tracking_no)
|
95
|
+
rest_api('/cj-logistics', payload_tracking_no(tracking_no))
|
96
|
+
end
|
97
|
+
|
98
|
+
def speed_d(tracking_no)
|
99
|
+
rest_api('/speed-d', payload_tracking_no(tracking_no))
|
100
|
+
end
|
101
|
+
|
102
|
+
def ninja_van(tracking_no)
|
103
|
+
rest_api('/ninja-van', payload_tracking_no(tracking_no))
|
104
|
+
end
|
105
|
+
|
106
|
+
def nim_express(tracking_no)
|
107
|
+
rest_api('/nim-express', payload_tracking_no(tracking_no))
|
108
|
+
end
|
109
|
+
|
110
|
+
def bee_express(tracking_no)
|
111
|
+
rest_api('/bee-express', payload_tracking_no(tracking_no))
|
112
|
+
end
|
113
|
+
|
114
|
+
def inter_express(tracking_no)
|
115
|
+
rest_api('/inter-express', payload_tracking_no(tracking_no))
|
116
|
+
end
|
117
|
+
|
118
|
+
def tnt_express(tracking_no)
|
119
|
+
rest_api('/tnt-express', payload_tracking_no(tracking_no))
|
120
|
+
end
|
121
|
+
|
122
|
+
def tp_logistics(tracking_no)
|
123
|
+
rest_api('/tp-logistics', payload_tracking_no(tracking_no))
|
124
|
+
end
|
125
|
+
|
126
|
+
def ups(tracking_no)
|
127
|
+
rest_api('/ups', payload_tracking_no(tracking_no))
|
128
|
+
end
|
129
|
+
|
130
|
+
def business_idea_transport(tracking_no)
|
131
|
+
rest_api('/business-idea-transport', payload_tracking_no(tracking_no))
|
132
|
+
end
|
133
|
+
|
134
|
+
def payload_with_courier_and_tracking_no(courier, tracking_no)
|
135
|
+
{
|
136
|
+
courier: courier,
|
137
|
+
trackingNo: tracking_no
|
138
|
+
}
|
139
|
+
end
|
140
|
+
|
141
|
+
def payload_tracking_no(tracking_no)
|
142
|
+
{
|
143
|
+
trackingNo: tracking_no
|
144
|
+
}
|
145
|
+
end
|
146
|
+
|
147
|
+
private
|
148
|
+
|
149
|
+
def api_key_required
|
150
|
+
raise ArgumentError, '`api_key` is not configured' unless api_key
|
151
|
+
end
|
152
|
+
|
153
|
+
def key_secret_required
|
154
|
+
raise ArgumentError, '`key_secret` is not configured' unless key_secret
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
metadata
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: etrackings
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Saharak Manoo
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-04-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: addressable
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.11'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.11'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '13.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '13.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: '3.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.8'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.8'
|
83
|
+
description: For ETrackings API
|
84
|
+
email: Saharakmanoo@outlook.com
|
85
|
+
executables:
|
86
|
+
- etrackings
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- bin/etrackings
|
91
|
+
- lib/etrackings.rb
|
92
|
+
- lib/etrackings/client.rb
|
93
|
+
homepage: https://github.com/Saharak-Dove/etracking-ruby
|
94
|
+
licenses:
|
95
|
+
- MIT
|
96
|
+
metadata: {}
|
97
|
+
post_install_message:
|
98
|
+
rdoc_options: []
|
99
|
+
require_paths:
|
100
|
+
- lib
|
101
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
requirements: []
|
112
|
+
rubygems_version: 3.2.3
|
113
|
+
signing_key:
|
114
|
+
specification_version: 4
|
115
|
+
summary: For ETrackings API
|
116
|
+
test_files: []
|