linkhub 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/linkhub.rb +35 -65
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 912337f638e0b6c8a6ca840e650d9704427c340b
|
4
|
+
data.tar.gz: 193e4df9e4e57be0cfd80ded797bfbdb6b962cf0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21573eb23b6bd124a46f8eb27a23425e474f593bcb3c1de8c14113c716d6487cdcb6c43a6445631993700cc4f08fa187f7a6be08263133e3a3315ff12c79b0e7
|
7
|
+
data.tar.gz: 3289ac44a1faf5b03e443cb81dea5c683e496179e64c14d187ccb1c5cf4b22c11ad56c322ad2b838f6491197371c97ec052caa426d343bac496c30a76fad8bf9
|
data/lib/linkhub.rb
CHANGED
@@ -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.
|
51
|
+
hmac = Base64.strict_encode64(OpenSSL::HMAC.digest(digest, key, data))
|
50
52
|
|
51
53
|
headers = {
|
52
|
-
"Content-Type" => "application/json
|
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
|
-
|
60
|
-
|
61
|
-
|
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
|
-
|
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
|
-
|
73
|
-
|
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
|
-
|
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
|
-
|
119
|
-
|
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
|
-
|
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
|
-
|
151
|
-
|
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
|
-
|
184
|
-
|
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.
|
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-
|
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.
|
40
|
+
rubygems_version: 2.5.1
|
41
41
|
signing_key:
|
42
42
|
specification_version: 4
|
43
43
|
summary: Linkhub API SDK
|