linkhub 1.0.0 → 1.3.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 +60 -18
  3. metadata +8 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4d8c9b255cf59df63d8cc293937686b26266a6fe
4
- data.tar.gz: 0bb4c9dd9a1e30f335e4ba93f0b0f4c1e1627327
3
+ metadata.gz: 5a91d97273aa70ad0eff6a4c8aa3b797fea73070
4
+ data.tar.gz: 73f357f0f86301b4ed97bf33e7814b8d83ac08ec
5
5
  SHA512:
6
- metadata.gz: dc3c4f660199c478b7c25eed9e4b504ebb1cae8c4bc5fcbcc94e3a12d9ad1fc723b6430a29281b8c73382709dd8869e13d097295bae5aafe567539667173063f
7
- data.tar.gz: 0b213228558fe734cac53357d658a17be6afe8dac2588f10a4731105c6efce6d82a407707780e2d912781a6a079f4d15f3b60375cb11d26a168872854d269fff
6
+ metadata.gz: b63b67fd82a581d44d64c222711a016309349df0ddd659769e1969ad1721661874d95155370d058884fe3c9e0a4bfd102435e374c9451b3de84966fae7a378fd
7
+ data.tar.gz: aa5bc794c4f045de988301887c8951cdfc550719f8183ce191de109c32b44c6bc6b77d5c58b2194c8837c1b181139a8339ae5ca5193e495d218e27e55a79a722
@@ -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
+ puts(uri)
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
+ puts(uri)
71
91
  res = Net::HTTP.get_response(uri)
72
92
 
73
93
  if res.code == "200"
@@ -78,10 +98,32 @@ class Linkhub
78
98
  end
79
99
  end
80
100
 
81
- # Get Popbill member remain point
82
- def getBalance(bearerToken, serviceID)
83
- uri = URI(LINKHUB_ServiceURL + "/" + serviceID + "/Point")
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
+ puts(uri)
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)
84
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
+
123
+ # Get Popbill member remain point
124
+ def getBalance(bearerToken, serviceID, useStaticIP=false)
125
+ uri = URI((useStaticIP ? LINKHUB_ServiceURL_GA : LINKHUB_ServiceURL) + "/" + serviceID + "/Point")
126
+ puts(uri)
85
127
  headers = {
86
128
  "Authorization" => "Bearer " + bearerToken,
87
129
  }
@@ -101,9 +143,9 @@ 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")
106
-
146
+ def getPartnerBalance(bearerToken, serviceID, useStaticIP)
147
+ uri = URI( (useStaticIP ? LINKHUB_ServiceURL_GA : LINKHUB_ServiceURL) + "/" + serviceID + "/PartnerPoint")
148
+ puts(uri)
107
149
  headers = {
108
150
  "Authorization" => "Bearer " + bearerToken,
109
151
  }
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linkhub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.3.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: 2017-01-04 00:00:00.000000000 Z
11
+ date: 2020-07-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Linkhub API SDK for Popbill, Jusolink Service
13
+ description: Linkhub API SDK
14
14
  email: code@linkhub.co.kr
15
15
  executables: []
16
16
  extensions: []
@@ -18,7 +18,8 @@ extra_rdoc_files: []
18
18
  files:
19
19
  - lib/linkhub.rb
20
20
  homepage: https://github.com/linkhub-sdk/linkhub.ruby
21
- licenses: []
21
+ licenses:
22
+ - APACHE LICENSE VERSION 2.0
22
23
  metadata: {}
23
24
  post_install_message:
24
25
  rdoc_options: []
@@ -26,17 +27,17 @@ require_paths:
26
27
  - lib
27
28
  required_ruby_version: !ruby/object:Gem::Requirement
28
29
  requirements:
29
- - - '>='
30
+ - - ">="
30
31
  - !ruby/object:Gem::Version
31
32
  version: 2.0.0
32
33
  required_rubygems_version: !ruby/object:Gem::Requirement
33
34
  requirements:
34
- - - '>='
35
+ - - ">="
35
36
  - !ruby/object:Gem::Version
36
37
  version: '0'
37
38
  requirements: []
38
39
  rubyforge_project:
39
- rubygems_version: 2.4.8
40
+ rubygems_version: 2.5.1
40
41
  signing_key:
41
42
  specification_version: 4
42
43
  summary: Linkhub API SDK