linkhub 1.0.1 → 1.3.1

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 +58 -16
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4eb14f8f06cdbf123974599381a1e7f9f8cfc83b
4
- data.tar.gz: 46b2f0a5d69b1db0c01aa877e5c5d0bed1edd058
3
+ metadata.gz: 44dc7d5c326a375c9ab30a3f874380f9b461a244
4
+ data.tar.gz: 95c9fc92c877ca585213bb9f0b7e7d04cf581f4a
5
5
  SHA512:
6
- metadata.gz: d5fecb9e06a5f15d9535422cdb4b108a1aaa73e1aa32f13ffd6e0c7d273e4369b0e6de0974876fcc1946f6995d7978efb3afc77649d2ab53b41b58f8be4dedc6
7
- data.tar.gz: 43247aece1f5827a1f21c1b3680657b01d28c0b88481ded4dff558bb000dd8bc50a163011ee6d7c09d608edd0f8ba45e191333b26f106a0b71fe68996805218a
6
+ metadata.gz: 0ab4226cd6f114f220962c22b4135ae69e66d82bd9cf008c06d84e2396ce9ed4ae4a38616b01e435148c4e401e753577ea7f81ec057852d0ef5ba3b7d6de20d9
7
+ data.tar.gz: 47ea99eaac0ed2492f917d3bc7ea5fcf5f46a9c30959833dfc89c75e3bae4d8223d12e1c84248ea64a24c57d0afdc22e50f8968220e2d1e44b6a5b5572f9eb8c
@@ -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
@@ -11,6 +14,7 @@ class Linkhub
11
14
 
12
15
  LINKHUB_APIVersion = "1.0"
13
16
  LINKHUB_ServiceURL = "https://auth.linkhub.co.kr"
17
+ LINKHUB_ServiceURL_GA = "https://ga-auth.linkhub.co.kr"
14
18
 
15
19
  # Generate Linkhub Class Singleton Instance
16
20
  class << self
@@ -24,15 +28,21 @@ class Linkhub
24
28
  end
25
29
 
26
30
  # Get SessionToken for Bearer Token
27
- def getSessionToken(serviceid, accessid, scope)
28
- uri = URI(LINKHUB_ServiceURL + "/" + serviceid + "/Token")
31
+ def getSessionToken(serviceid, accessid, scope, forwardip="",useStaticIP=false)
32
+ uri = URI( (useStaticIP ? LINKHUB_ServiceURL_GA : LINKHUB_ServiceURL) + "/" + serviceid + "/Token")
33
+
29
34
  postData = {:access_id => accessid, :scope => scope}.to_json
30
35
 
31
- apiServerTime = getTime()
36
+ apiServerTime = getTime(useStaticIP)
32
37
 
33
38
  hmacTarget = "POST\n"
34
39
  hmacTarget += Base64.strict_encode64(Digest::MD5.digest(postData)) + "\n"
35
40
  hmacTarget += apiServerTime + "\n"
41
+
42
+ if forwardip != ""
43
+ hmacTarget += forwardip + "\n"
44
+ end
45
+
36
46
  hmacTarget += LINKHUB_APIVersion + "\n"
37
47
  hmacTarget += "/" + serviceid + "/Token"
38
48
 
@@ -40,7 +50,7 @@ class Linkhub
40
50
 
41
51
  data = hmacTarget
42
52
  digest = OpenSSL::Digest.new("sha1")
43
- hmac = Base64.encode64(OpenSSL::HMAC.digest(digest, key, data))
53
+ hmac = Base64.strict_encode64(OpenSSL::HMAC.digest(digest, key, data))
44
54
 
45
55
  headers = {
46
56
  "Content-Type" => "application/json",
@@ -50,24 +60,34 @@ class Linkhub
50
60
  "x-lh-version" => LINKHUB_APIVersion
51
61
  }
52
62
 
53
- https = Net::HTTP.new(uri.host, 443)
54
- https.use_ssl = true
55
- Net::HTTP::Post.new(uri)
63
+ if forwardip != ""
64
+ headers.store("x-lh-forwarded", forwardip)
65
+ end
56
66
 
67
+ https = Net::HTTP.new(uri.host, uri.port)
68
+ https.use_ssl = true
57
69
  res = https.post(uri.path, postData, headers)
58
70
 
71
+ begin
72
+ gz = Zlib::GzipReader.new(StringIO.new(res.body.to_s))
73
+ uncompressed_string = gz.read
74
+ rescue Zlib::Error => le
75
+ uncompressed_string = res.body
76
+ end
77
+
59
78
  if res.code == "200"
60
- JSON.parse(res.body)
79
+ JSON.parse(uncompressed_string)
61
80
  else
62
- raise LinkhubException.new(JSON.parse(res.body)["code"],
63
- JSON.parse(res.body)["message"])
81
+ raise LinkhubException.new(JSON.parse(uncompressed_string)["code"],
82
+ JSON.parse(uncompressed_string)["message"])
64
83
  end
65
84
  end # end of getToken
66
85
 
67
86
 
68
87
  # Get API Server UTC Time
69
- def getTime
70
- uri = URI(LINKHUB_ServiceURL + "/Time")
88
+ def getTime(useStaticIP=false)
89
+ uri = URI((useStaticIP ? LINKHUB_ServiceURL_GA : LINKHUB_ServiceURL) + "/Time")
90
+
71
91
  res = Net::HTTP.get_response(uri)
72
92
 
73
93
  if res.code == "200"
@@ -78,9 +98,31 @@ class Linkhub
78
98
  end
79
99
  end
80
100
 
101
+ # 파트너 포인트 충전 URL - 2017/08/29 추가
102
+ def getPartnerURL(bearerToken, serviceID, togo, useStaticIP=false)
103
+ uri = URI((useStaticIP ? LINKHUB_ServiceURL_GA : LINKHUB_ServiceURL) + "/" + serviceID + "/URL?TG=" + togo)
104
+
105
+ headers = {
106
+ "Authorization" => "Bearer " + bearerToken,
107
+ }
108
+
109
+ https = Net::HTTP.new(uri.host, 443)
110
+ https.use_ssl = true
111
+ Net::HTTP::Post.new(uri)
112
+
113
+ res = https.get(uri.request_uri, headers)
114
+
115
+ if res.code == "200"
116
+ JSON.parse(res.body)["url"]
117
+ else
118
+ raise LinkhubException.new(JSON.parse(res.body)["code"],
119
+ JSON.parse(res.body)["message"])
120
+ end
121
+ end
122
+
81
123
  # Get Popbill member remain point
82
- def getBalance(bearerToken, serviceID)
83
- uri = URI(LINKHUB_ServiceURL + "/" + serviceID + "/Point")
124
+ def getBalance(bearerToken, serviceID, useStaticIP=false)
125
+ uri = URI((useStaticIP ? LINKHUB_ServiceURL_GA : LINKHUB_ServiceURL) + "/" + serviceID + "/Point")
84
126
 
85
127
  headers = {
86
128
  "Authorization" => "Bearer " + bearerToken,
@@ -101,8 +143,8 @@ class Linkhub
101
143
  end
102
144
 
103
145
  # Get Linkhub partner remain point
104
- def getPartnerBalance(bearerToken, serviceID)
105
- uri = URI(LINKHUB_ServiceURL + "/" + serviceID + "/PartnerPoint")
146
+ def getPartnerBalance(bearerToken, serviceID, useStaticIP)
147
+ uri = URI( (useStaticIP ? LINKHUB_ServiceURL_GA : LINKHUB_ServiceURL) + "/" + serviceID + "/PartnerPoint")
106
148
 
107
149
  headers = {
108
150
  "Authorization" => "Bearer " + bearerToken,
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.0.1
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linkhub Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-12 00:00:00.000000000 Z
11
+ date: 2020-07-15 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