etracking 1.5.0 → 2.3.8

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/etracking/client.rb +44 -40
  3. metadata +1 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2360bd868ffe30eb7d404d6bb5ab7b699fe03f6bc878b15245684e98a3646c86
4
- data.tar.gz: 2b12b3adf780e19dfec64b77f00fcbbe395c5635dc79798a6735784e857c3c99
3
+ metadata.gz: 80134473b411b0b2319e448c0d8e3d8b0c9d0cba60177e3977464cd256491aeb
4
+ data.tar.gz: d8b1362d60036c377fe69a13eb75dad04b7464fa452d2a588847d18623de197c
5
5
  SHA512:
6
- metadata.gz: 2a9ddb641b2e64a08e9f48fabc83765cdcaf267d49a89ca888531f7fde483d15a34d17671fe419b9ed2967dd6e0b4cb55bd8fbbeee9fd8fb6210f9579858ce58
7
- data.tar.gz: 482033dd81e1abb6df332a5992e80b83800c42b0cc149d4d9c719ade75baa59909c08bc44d89607ab1fbb061c721feaa53e332e50c85efedda40330b1c084087
6
+ metadata.gz: e5e1423f8cc29d73f2ddbb0bdfcd2d183f6fa663d012e4ace8ed30ddbac85594e7ded9127dc39c3b61c48dd7d190186fa2ddc3d853ef4921924e5aa2c1001f30
7
+ data.tar.gz: a569f76714f8469a1b59202ddf4685e44f3c3fd2b4e2300764e52ab0ea9a3ba6a7126155dcae5e98653b51fee43435d4620f05d342c6b38156e2edcbecfad21e
@@ -1,5 +1,6 @@
1
- require 'rest-client'
2
- require 'securerandom'
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://165.22.52.6'
31
+ 'https://etrackings.com/api/v2/tracks/'
31
32
  end
32
33
 
33
- def rest_client_api(url, method, headers, payload)
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
- etracking_api_key: api_key,
50
- etracking_key_secret: key_secret,
51
- content_type: 'application/json',
52
- accept_language: language || 'TH'
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 api(service, tracking_number)
57
- rest_client_api(
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
- api('dhl_express', tracking_number)
63
+ rest_api('/dhl_express', payload_tracking_number(tracking_number))
67
64
  end
68
65
 
69
66
  def flash_express(tracking_number)
70
- api('flash_express', tracking_number)
67
+ rest_api('/flash_express', payload_tracking_number(tracking_number))
71
68
  end
72
69
 
73
70
  def jt_express(tracking_number)
74
- api('jt_express', tracking_number)
71
+ rest_api('/jt_express', payload_tracking_number(tracking_number))
75
72
  end
76
73
 
77
74
  def kerry_express(tracking_number)
78
- api('kerry_express', tracking_number)
75
+ rest_api('/kerry_express', payload_tracking_number(tracking_number))
79
76
  end
80
77
 
81
78
  def lazada_express(tracking_number)
82
- api('lazada_express', tracking_number)
79
+ rest_api('/lazada_express', payload_tracking_number(tracking_number))
83
80
  end
84
81
 
85
82
  def scg_express(tracking_number)
86
- api('scg_express', tracking_number)
83
+ rest_api('/scg_express', payload_tracking_number(tracking_number))
87
84
  end
88
85
 
89
86
  def shopee_express(tracking_number)
90
- api('shopee_express', tracking_number)
87
+ rest_api('/shopee_express', payload_tracking_number(tracking_number))
91
88
  end
92
89
 
93
- # def thailand_post(tracking_number)
94
- # thailand_post_api_key
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
- # api('thailand_post', tracking_number)
97
- # end
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: 1.5.0
4
+ version: 2.3.8
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