class Etracking::Client
API Client
of eTracking SDK for Ruby
@client ||= Etracking::Client.new do |config| config.api_key = ENV["etracking_api_key"] config.key_secret = ENV["etracking_key_secret"] config.language = ENV["etracking_language"] || 'TH' end
Attributes
api_key[RW]
@return [String]
key_secret[RW]
@return [String]
language[RW]
@return [String]
Public Class Methods
new(options = {}) { |self| ... }
click to toggle source
Initialize a new client.
@param options [Hash] @return [Etracking::Client]
# File lib/etracking/client.rb, line 23 def initialize(options = {}) options.each do |key, value| instance_variable_set("@#{key}", value) end yield(self) if block_given? end
Public Instance Methods
alpha_fast(tracking_number)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/etracking/client.rb, line 67 def dhl_express(tracking_number) rest_api('/dhl_express', payload_tracking_number(tracking_number)) end
endpoint()
click to toggle source
# File lib/etracking/client.rb, line 30 def endpoint 'https://api.etrackings.com/v2/tracks' end
flash_express(tracking_number)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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 = [])
click to toggle source
# File lib/etracking/client.rb, line 59 def tracks(courier, tracking_numbers = []) rest_api('', payload_with_courier_and_tracking_numbers(courier, tracking_number)) end
Private Instance Methods
api_key_required()
click to toggle source
# File lib/etracking/client.rb, line 157 def api_key_required raise ArgumentError, '`api_key` is not configured' unless api_key end
key_secret_required()
click to toggle source
# File lib/etracking/client.rb, line 161 def key_secret_required raise ArgumentError, '`key_secret` is not configured' unless key_secret end