linkhub 1.1.1 → 1.2.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/linkhub.rb +35 -65
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a3768023fa4fe1ccd7dadd77464dfa0bf1fd29c
4
- data.tar.gz: 6c80f61b1c10d79203285015b41ee9f0fa8c4a00
3
+ metadata.gz: 912337f638e0b6c8a6ca840e650d9704427c340b
4
+ data.tar.gz: 193e4df9e4e57be0cfd80ded797bfbdb6b962cf0
5
5
  SHA512:
6
- metadata.gz: 5060684e259865f9822f8dfcdf256b91cea54c225f01897812d971fc172f964f372b8111f53ba42c5d58682a1aa451ae08d9d94634f4cacbc5875854d7aff0c9
7
- data.tar.gz: 7092122b0b89f592597db3dc026d06df387f7ddc72d02e24c422943010c3d2971ad8ab960e1b04e297c582b4f127acf9f99fc25e9baa9ee7b6dd4e02e7d34de5
6
+ metadata.gz: 21573eb23b6bd124a46f8eb27a23425e474f593bcb3c1de8c14113c716d6487cdcb6c43a6445631993700cc4f08fa187f7a6be08263133e3a3315ff12c79b0e7
7
+ data.tar.gz: 3289ac44a1faf5b03e443cb81dea5c683e496179e64c14d187ccb1c5cf4b22c11ad56c322ad2b838f6491197371c97ec052caa426d343bac496c30a76fad8bf9
@@ -4,6 +4,9 @@ require "uri"
4
4
  require "json"
5
5
  require "digest"
6
6
  require "base64"
7
+ require 'zlib'
8
+ require 'stringio'
9
+ require 'openssl'
7
10
 
8
11
  # Linkhub API Base Class
9
12
  class Linkhub
@@ -23,14 +26,8 @@ class Linkhub
23
26
  private :new
24
27
  end
25
28
 
26
- def gzip_parse (target)
27
- sio = StringIO.new(target)
28
- gz = Zlib::GzipReader.new(sio)
29
- gz.read()
30
- end
31
-
32
29
  # Get SessionToken for Bearer Token
33
- def getSessionToken(serviceid, accessid, scope)
30
+ def getSessionToken(serviceid, accessid, scope, forwardip="")
34
31
  uri = URI(LINKHUB_ServiceURL + "/" + serviceid + "/Token")
35
32
  postData = {:access_id => accessid, :scope => scope}.to_json
36
33
 
@@ -39,6 +36,11 @@ class Linkhub
39
36
  hmacTarget = "POST\n"
40
37
  hmacTarget += Base64.strict_encode64(Digest::MD5.digest(postData)) + "\n"
41
38
  hmacTarget += apiServerTime + "\n"
39
+
40
+ if forwardip != ""
41
+ hmacTarget += forwardip + "\n"
42
+ end
43
+
42
44
  hmacTarget += LINKHUB_APIVersion + "\n"
43
45
  hmacTarget += "/" + serviceid + "/Token"
44
46
 
@@ -46,37 +48,36 @@ class Linkhub
46
48
 
47
49
  data = hmacTarget
48
50
  digest = OpenSSL::Digest.new("sha1")
49
- hmac = Base64.encode64(OpenSSL::HMAC.digest(digest, key, data))
51
+ hmac = Base64.strict_encode64(OpenSSL::HMAC.digest(digest, key, data))
50
52
 
51
53
  headers = {
52
- "Content-Type" => "application/json; charset=utf8",
54
+ "Content-Type" => "application/json",
53
55
  "Authorization" => "LINKHUB " + @_linkID + " " + hmac,
54
56
  "Accept-Encoding" => "gzip,deflate",
55
57
  "x-lh-date" => apiServerTime,
56
58
  "x-lh-version" => LINKHUB_APIVersion
57
59
  }
58
60
 
59
- https = Net::HTTP.new(uri.host, 443)
60
- https.use_ssl = true
61
- Net::HTTP::Post.new(uri)
61
+ if forwardip != ""
62
+ headers.store("x-lh-forwarded", forwardip)
63
+ end
62
64
 
65
+ https = Net::HTTP.new(uri.host, uri.port)
66
+ https.use_ssl = true
63
67
  res = https.post(uri.path, postData, headers)
64
68
 
69
+ begin
70
+ gz = Zlib::GzipReader.new(StringIO.new(res.body.to_s))
71
+ uncompressed_string = gz.read
72
+ rescue Zlib::Error => le
73
+ uncompressed_string = res.body
74
+ end
75
+
65
76
  if res.code == "200"
66
- if res.header['Content-Encoding'].eql?('gzip')
67
- JSON.parse(gzip_parse(res.body))
68
- else
69
- JSON.parse(res.body)
70
- end
77
+ JSON.parse(uncompressed_string)
71
78
  else
72
- if res.header['Content-Encoding'].eql?('gzip')
73
- code = JSON.parse(gzip_parse(res.body))["code"]
74
- message = JSON.parse(gzip_parse(res.body))["message"]
75
- else
76
- code = JSON.parse(res.body)["code"]
77
- message = JSON.parse(res.body)["message"]
78
- end
79
- raise LinkhubException.new(code,message)
79
+ raise LinkhubException.new(JSON.parse(uncompressed_string)["code"],
80
+ JSON.parse(uncompressed_string)["message"])
80
81
  end
81
82
  end # end of getToken
82
83
 
@@ -109,20 +110,10 @@ class Linkhub
109
110
  res = https.get(uri.request_uri, headers)
110
111
 
111
112
  if res.code == "200"
112
- if res.header['Content-Encoding'].eql?('gzip')
113
- JSON.parse(gzip_parse(res.body))["url"]
114
- else
115
- JSON.parse(res.body)["url"]
116
- end
113
+ JSON.parse(res.body)["url"]
117
114
  else
118
- if res.header['Content-Encoding'].eql?('gzip')
119
- code = JSON.parse(gzip_parse(res.body))["code"]
120
- message = JSON.parse(gzip_parse(res.body))["message"]
121
- else
122
- code = JSON.parse(res.body)["code"]
123
- message = JSON.parse(res.body)["message"]
124
- end
125
- raise LinkhubException.new(code,message)
115
+ raise LinkhubException.new(JSON.parse(res.body)["code"],
116
+ JSON.parse(res.body)["message"])
126
117
  end
127
118
  end
128
119
 
@@ -141,20 +132,10 @@ class Linkhub
141
132
  res = https.get(uri.path, headers)
142
133
 
143
134
  if res.code == "200"
144
- if res.header['Content-Encoding'].eql?('gzip')
145
- JSON.parse(gzip_parse(res.body))["remainPoint"]
146
- else
147
- JSON.parse(res.body)["remainPoint"]
148
- end
135
+ JSON.parse(res.body)["remainPoint"]
149
136
  else
150
- if res.header['Content-Encoding'].eql?('gzip')
151
- code = JSON.parse(gzip_parse(res.body))["code"]
152
- message = JSON.parse(gzip_parse(res.body))["message"]
153
- else
154
- code = JSON.parse(res.body)["code"]
155
- message = JSON.parse(res.body)["message"]
156
- end
157
- raise LinkhubException.new(code,message)
137
+ raise LinkhubException.new(JSON.parse(res.body)["code"],
138
+ JSON.parse(res.body)["message"])
158
139
  end
159
140
  end
160
141
 
@@ -173,21 +154,10 @@ class Linkhub
173
154
  res = https.get(uri.path, headers)
174
155
 
175
156
  if res.code == "200"
176
-
177
- if res.header['Content-Encoding'].eql?('gzip')
178
- JSON.parse(gzip_parse(res.body))["remainPoint"]
179
- else
180
- JSON.parse(res.body)["remainPoint"]
181
- end
157
+ JSON.parse(res.body)["remainPoint"]
182
158
  else
183
- if res.header['Content-Encoding'].eql?('gzip')
184
- code = JSON.parse(gzip_parse(res.body))["code"]
185
- message = JSON.parse(gzip_parse(res.body))["message"]
186
- else
187
- code = JSON.parse(res.body)["code"]
188
- message = JSON.parse(res.body)["message"]
189
- end
190
- raise LinkhubException.new(code,message)
159
+ raise LinkhubException.new(JSON.parse(res.body)["code"],
160
+ JSON.parse(res.body)["message"])
191
161
  end
192
162
  end
193
163
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linkhub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linkhub Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-27 00:00:00.000000000 Z
11
+ date: 2019-09-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Linkhub API SDK
14
14
  email: code@linkhub.co.kr
@@ -27,17 +27,17 @@ require_paths:
27
27
  - lib
28
28
  required_ruby_version: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - '>='
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.0.0
33
33
  required_rubygems_version: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - '>='
35
+ - - ">="
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
38
  requirements: []
39
39
  rubyforge_project:
40
- rubygems_version: 2.4.8
40
+ rubygems_version: 2.5.1
41
41
  signing_key:
42
42
  specification_version: 4
43
43
  summary: Linkhub API SDK