linkhub 1.0.0 → 1.3.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 +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