Class: Etracking::Client
- Inherits:
-
Object
- Object
- Etracking::Client
- Defined in:
- lib/etracking/client.rb
Overview
Instance Attribute Summary collapse
-
#api_key ⇒ Object
@return [String].
-
#key_secret ⇒ Object
@return [String].
-
#language ⇒ Object
@return [String].
Instance Method Summary collapse
- #alpha_fast(tracking_number) ⇒ Object
- #auto_detect(tracking_number) ⇒ Object
- #bee_express(tracking_number) ⇒ Object
- #best_express(tracking_number) ⇒ Object
- #cj_logistics(tracking_number) ⇒ Object
- #dhl_express(tracking_number) ⇒ Object
- #endpoint ⇒ Object
- #flash_express(tracking_number) ⇒ Object
-
#initialize(options = {}) {|_self| ... } ⇒ Etracking::Client
constructor
Initialize a new client.
- #inter_express(tracking_number) ⇒ Object
- #jt_express(tracking_number) ⇒ Object
- #kerry_express(tracking_number) ⇒ Object
- #lazada_express(tracking_number) ⇒ Object
- #nim_express(tracking_number) ⇒ Object
- #ninja_van(tracking_number) ⇒ Object
- #payload_tracking_number(tracking_number) ⇒ Object
- #payload_with_courier_and_tracking_number(courier, tracking_number) ⇒ Object
- #payload_with_courier_and_tracking_numbers(courier, tracking_numbers) ⇒ Object
- #rest_api(path, payload) ⇒ Object
- #scg_express(tracking_number) ⇒ Object
- #shopee_express(tracking_number) ⇒ Object
- #speed_d(tracking_number) ⇒ Object
- #thailand_post(tracking_number) ⇒ Object
- #tnt_express(tracking_number) ⇒ Object
- #track(courier, tracking_number) ⇒ Object
- #tracks(courier, tracking_numbers = []) ⇒ Object
Constructor Details
#initialize(options = {}) {|_self| ... } ⇒ Etracking::Client
Initialize a new client.
23 24 25 26 27 28 |
# File 'lib/etracking/client.rb', line 23 def initialize( = {}) .each do |key, value| instance_variable_set("@#{key}", value) end yield(self) if block_given? end |
Instance Attribute Details
#api_key ⇒ Object
@return [String]
17 18 19 |
# File 'lib/etracking/client.rb', line 17 def api_key @api_key end |
#key_secret ⇒ Object
@return [String]
17 18 19 |
# File 'lib/etracking/client.rb', line 17 def key_secret @key_secret end |
#language ⇒ Object
@return [String]
17 18 19 |
# File 'lib/etracking/client.rb', line 17 def language @language end |
Instance Method Details
#alpha_fast(tracking_number) ⇒ Object
99 100 101 |
# File 'lib/etracking/client.rb', line 99 def alpha_fast(tracking_number) rest_api('/alpha_fast', payload_tracking_number(tracking_number)) end |
#auto_detect(tracking_number) ⇒ Object
55 56 57 |
# File 'lib/etracking/client.rb', line 55 def auto_detect(tracking_number) rest_api('/auto_detect', payload_tracking_number(tracking_number)) end |
#bee_express(tracking_number) ⇒ Object
123 124 125 |
# File 'lib/etracking/client.rb', line 123 def bee_express(tracking_number) rest_api('/bee_express', payload_tracking_number(tracking_number)) end |
#best_express(tracking_number) ⇒ Object
103 104 105 |
# File 'lib/etracking/client.rb', line 103 def best_express(tracking_number) rest_api('/best_express', payload_tracking_number(tracking_number)) end |
#cj_logistics(tracking_number) ⇒ Object
107 108 109 |
# File 'lib/etracking/client.rb', line 107 def cj_logistics(tracking_number) rest_api('/cj_logistics', payload_tracking_number(tracking_number)) end |
#dhl_express(tracking_number) ⇒ Object
67 68 69 |
# File 'lib/etracking/client.rb', line 67 def dhl_express(tracking_number) rest_api('/dhl_express', payload_tracking_number(tracking_number)) end |
#endpoint ⇒ Object
30 31 32 |
# File 'lib/etracking/client.rb', line 30 def endpoint 'https://api.etrackings.com/v2/tracks' end |
#flash_express(tracking_number) ⇒ Object
71 72 73 |
# File 'lib/etracking/client.rb', line 71 def flash_express(tracking_number) rest_api('/flash_express', payload_tracking_number(tracking_number)) end |
#inter_express(tracking_number) ⇒ Object
127 128 129 |
# File 'lib/etracking/client.rb', line 127 def inter_express(tracking_number) rest_api('/inter_express', payload_tracking_number(tracking_number)) end |
#jt_express(tracking_number) ⇒ Object
75 76 77 |
# File 'lib/etracking/client.rb', line 75 def jt_express(tracking_number) rest_api('/jt_express', payload_tracking_number(tracking_number)) end |
#kerry_express(tracking_number) ⇒ Object
79 80 81 |
# File 'lib/etracking/client.rb', line 79 def kerry_express(tracking_number) rest_api('/kerry_express', payload_tracking_number(tracking_number)) end |
#lazada_express(tracking_number) ⇒ Object
83 84 85 |
# File 'lib/etracking/client.rb', line 83 def lazada_express(tracking_number) rest_api('/lazada_express', payload_tracking_number(tracking_number)) end |
#nim_express(tracking_number) ⇒ Object
119 120 121 |
# File 'lib/etracking/client.rb', line 119 def nim_express(tracking_number) rest_api('/nim_express', payload_tracking_number(tracking_number)) end |
#ninja_van(tracking_number) ⇒ Object
115 116 117 |
# File 'lib/etracking/client.rb', line 115 def ninja_van(tracking_number) rest_api('/ninja_van', payload_tracking_number(tracking_number)) end |
#payload_tracking_number(tracking_number) ⇒ Object
149 150 151 152 153 |
# File 'lib/etracking/client.rb', line 149 def payload_tracking_number(tracking_number) { tracking_number: tracking_number } end |
#payload_with_courier_and_tracking_number(courier, tracking_number) ⇒ Object
142 143 144 145 146 147 |
# File 'lib/etracking/client.rb', line 142 def payload_with_courier_and_tracking_number(courier, tracking_number) { courier: courier, tracking_number: tracking_number } end |
#payload_with_courier_and_tracking_numbers(courier, tracking_numbers) ⇒ Object
135 136 137 138 139 140 |
# File 'lib/etracking/client.rb', line 135 def payload_with_courier_and_tracking_numbers(courier, tracking_numbers) { courier: courier, tracking_numbers: tracking_numbers } end |
#rest_api(path, payload) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/etracking/client.rb', line 34 def rest_api(path, payload) api_key_required key_secret_required url = URI("#{endpoint}#{path}") https = Net::HTTP.new(url.host, url.port); https.use_ssl = true https.read_timeout = 12 request = Net::HTTP::Post.new(url) request["etracking-api-key"] = api_key request["etracking-key-secret"] = key_secret request["accept-language"] = language || 'th' request["content-type"] = ["application/json", "text/plain"] request.body = payload.to_json response = https.request(request) JSON.parse(response.read_body, { symbolize_names: true } ) end |
#scg_express(tracking_number) ⇒ Object
87 88 89 |
# File 'lib/etracking/client.rb', line 87 def scg_express(tracking_number) rest_api('/scg_express', payload_tracking_number(tracking_number)) end |
#shopee_express(tracking_number) ⇒ Object
91 92 93 |
# File 'lib/etracking/client.rb', line 91 def shopee_express(tracking_number) rest_api('/shopee_express', payload_tracking_number(tracking_number)) end |
#speed_d(tracking_number) ⇒ Object
111 112 113 |
# File 'lib/etracking/client.rb', line 111 def speed_d(tracking_number) rest_api('/speed_d', payload_tracking_number(tracking_number)) end |
#thailand_post(tracking_number) ⇒ Object
95 96 97 |
# File 'lib/etracking/client.rb', line 95 def thailand_post(tracking_number) rest_api('/thailand_post', payload_tracking_number(tracking_number)) end |
#tnt_express(tracking_number) ⇒ Object
131 132 133 |
# File 'lib/etracking/client.rb', line 131 def tnt_express(tracking_number) rest_api('/tnt_express', payload_tracking_number(tracking_number)) end |
#track(courier, tracking_number) ⇒ Object
63 64 65 |
# File 'lib/etracking/client.rb', line 63 def track(courier, tracking_number) rest_api('/find', payload_with_courier_and_tracking_number(courier, tracking_number)) end |
#tracks(courier, tracking_numbers = []) ⇒ Object
59 60 61 |
# File 'lib/etracking/client.rb', line 59 def tracks(courier, tracking_numbers = []) rest_api('', payload_with_courier_and_tracking_numbers(courier, tracking_number)) end |