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].
-
#thailand_post_api_key ⇒ Object
@return [String].
Instance Method Summary collapse
- #dhl_express(tracking_number) ⇒ Object
- #endpoint ⇒ Object
- #flash_express(tracking_number) ⇒ Object
- #headers(request) ⇒ Object
-
#initialize(options = {}) {|_self| ... } ⇒ Etracking::Client
constructor
Initialize a new client.
- #jt_express(tracking_number) ⇒ Object
- #kerry_express(tracking_number) ⇒ Object
- #lazada_express(tracking_number) ⇒ Object
- #payload_tracking_number(tracking_number) ⇒ Object
- #payload_with_service_and_tracking_number(service_name, tracking_number) ⇒ Object
- #rest_api(path, payload) ⇒ Object
- #scg_express(tracking_number) ⇒ Object
- #shopee_express(tracking_number) ⇒ Object
- #thailand_post(tracking_number) ⇒ Object
- #track(service_name, tracking_number) ⇒ 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 |
#thailand_post_api_key ⇒ Object
@return [String]
17 18 19 |
# File 'lib/etracking/client.rb', line 17 def thailand_post_api_key @thailand_post_api_key end |
Instance Method Details
#dhl_express(tracking_number) ⇒ Object
62 63 64 |
# File 'lib/etracking/client.rb', line 62 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://etrackings.com/api/v2/tracks/' end |
#flash_express(tracking_number) ⇒ Object
66 67 68 |
# File 'lib/etracking/client.rb', line 66 def flash_express(tracking_number) rest_api('/flash_express', payload_tracking_number(tracking_number)) end |
#headers(request) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/etracking/client.rb', line 34 def headers(request) api_key_required key_secret_required request['etracking-api-key'] = api_key request['etracking-key-secret'] = key_secret request['accept-language'] = language || 'TH' request['content-type'] = 'application/json' request end |
#jt_express(tracking_number) ⇒ Object
70 71 72 |
# File 'lib/etracking/client.rb', line 70 def jt_express(tracking_number) rest_api('/jt_express', payload_tracking_number(tracking_number)) end |
#kerry_express(tracking_number) ⇒ Object
74 75 76 |
# File 'lib/etracking/client.rb', line 74 def kerry_express(tracking_number) rest_api('/kerry_express', payload_tracking_number(tracking_number)) end |
#lazada_express(tracking_number) ⇒ Object
78 79 80 |
# File 'lib/etracking/client.rb', line 78 def lazada_express(tracking_number) rest_api('/lazada_express', payload_tracking_number(tracking_number)) end |
#payload_tracking_number(tracking_number) ⇒ Object
103 104 105 106 107 |
# File 'lib/etracking/client.rb', line 103 def payload_tracking_number(tracking_number) { tracking_number: tracking_number } end |
#payload_with_service_and_tracking_number(service_name, tracking_number) ⇒ Object
96 97 98 99 100 101 |
# File 'lib/etracking/client.rb', line 96 def payload_with_service_and_tracking_number(service_name, tracking_number) { service_name: service_name, tracking_number: tracking_number } end |
#rest_api(path, payload) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/etracking/client.rb', line 46 def rest_api(path, payload) url = URI("#{endpoint}#{path}") http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request = headers(request) request.body = payload.to_json response = http.request(request) JSON.parse(response.read_body, { symbolize_names: true } ) end |
#scg_express(tracking_number) ⇒ Object
82 83 84 |
# File 'lib/etracking/client.rb', line 82 def scg_express(tracking_number) rest_api('/scg_express', payload_tracking_number(tracking_number)) end |
#shopee_express(tracking_number) ⇒ Object
86 87 88 |
# File 'lib/etracking/client.rb', line 86 def shopee_express(tracking_number) rest_api('/shopee_express', payload_tracking_number(tracking_number)) end |
#thailand_post(tracking_number) ⇒ Object
90 91 92 93 94 |
# File 'lib/etracking/client.rb', line 90 def thailand_post(tracking_number) thailand_post_api_key api('thailand_post', payload_tracking_number(tracking_number)) end |
#track(service_name, tracking_number) ⇒ Object
58 59 60 |
# File 'lib/etracking/client.rb', line 58 def track(service_name, tracking_number) rest_api('/find', payload_with_service_and_tracking_number(service_name, tracking_number)) end |