linkhub 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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