blupee 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ff2489d9bd559d039fc071f9fdb25bafcb03660
4
- data.tar.gz: d04bbbf0ef39604192413353c9336bd474a3b89c
3
+ metadata.gz: 5921164f572dc621003e32b49ab572369e3fa604
4
+ data.tar.gz: 93741fa54d469bd49232c5dfaf3b855a5dbeb861
5
5
  SHA512:
6
- metadata.gz: e4dbae7a66d902ff57c4c645ff667901525263aa63b3724bc363c20c347b7bd3700dfea3e67793d4c6ec76d3719f1d527ab007ae79ef57f3a6ed2b5f513dfbb7
7
- data.tar.gz: b224114712b0f6480a1fda824e7ba453d8983f39926db057f8dbe7a84675dbaabdd0069683abc2741d699bf426315fb1b559f71ea98572c551088a04876c316f
6
+ metadata.gz: 0e5801dbb75eece2669ce4aa61fcf14d18d5feadb28638c365ad2c00b5c2328330488eb11bfe24bd6080b6d38505ff6a6b4bb14986f199ce009b9d8beede818d
7
+ data.tar.gz: e39bbdb8fe609360f6a523fe8f82f5adb9639c814bf33c1031e1caf84529d8d58ed8a40647b95c9df55bcd4236e49ea1f7f25ada645c1d923f218c596c882034
@@ -1,10 +1,10 @@
1
1
  require_relative "blupee/version"
2
2
  require_relative 'blupee/errors'
3
- require_relative "blupee/auth"
4
3
  require_relative "blupee/configuration"
5
4
  require_relative "blupee/http_service"
6
5
  require_relative "blupee/http_service/request"
7
6
  require_relative "blupee/http_service/response"
7
+ require_relative "blupee/api/auth"
8
8
  require_relative "blupee/api/ether"
9
9
  require_relative "blupee/api/omise_go"
10
10
  require_relative "blupee/api/token"
@@ -0,0 +1,84 @@
1
+ # OpenSSL and Base64 are required to support signed_request
2
+ require 'openssl'
3
+ require 'base64'
4
+
5
+ module Blupee
6
+ module API
7
+ class Auth
8
+ attr_reader :client_id, :client_secret
9
+
10
+ # Creates a new client.
11
+ #
12
+ # @param client_id [String, Integer] a Blupee client ID
13
+ # @param client_secret a Blupee client secret
14
+ def initialize(client_id = nil, client_secret = nil)
15
+ @client_id = client_id || Blupee.config.client_id
16
+ @client_secret = client_secret || Blupee.config.client_secret
17
+ end
18
+
19
+ # access tokens
20
+
21
+ # Fetches an access token, token expiration, and other info from Blupee.
22
+ # Useful when you've received an OAuth code using the server-side authentication process.
23
+ # @see url_for_oauth_code
24
+ #
25
+ # @note (see #url_for_oauth_code)
26
+ #
27
+ # @param code (see #url_for_access_token)
28
+ # @param options any additional parameters to send to Blupee when redeeming the token
29
+ #
30
+ # @raise Blupee::OAuthTokenRequestError if Blupee returns an error response
31
+ #
32
+ # @return a hash of the access token info returned by Blupee (token, expiration, etc.)
33
+ def get_access_token_info(options = {})
34
+ # convenience method to get a the application's sessionless access token
35
+ get_token_from_server({}, true, options)
36
+ end
37
+
38
+ # Fetches the application's access token (ignoring expiration and other info).
39
+ # @see get_app_access_token_info
40
+ #
41
+ # @param (see #get_app_access_token_info)
42
+ #
43
+ # @return the application access token
44
+ def get_access_token(options = {})
45
+ if info = get_access_token_info(options)
46
+ Blupee.config.access_token = info["access_token"]
47
+ end
48
+ end
49
+
50
+ protected
51
+
52
+ def get_token_from_server(args, post = false, options = {})
53
+ # fetch the result from Blupee's servers
54
+ response = fetch_token_string(args, post, "auth", options)
55
+ parse_access_token(response)
56
+ end
57
+
58
+ def parse_access_token(response_text)
59
+ JSON.parse(response_text)
60
+ rescue JSON::ParserError
61
+ response_text.split("&").inject({}) do |hash, bit|
62
+ key, value = bit.split("=")
63
+ hash.merge!(key => value)
64
+ end
65
+ end
66
+
67
+
68
+ def fetch_token_string(args, post = false, endpoint = "auth", options = {})
69
+ raise ClientError if @client_id == nil
70
+ raise ClientError if @client_secret == nil
71
+ response = Blupee.make_request("/#{endpoint}", {
72
+ :client_id => @client_id,
73
+ :client_secret => @client_secret
74
+ }.merge!(args), post ? "post" : "get", {:use_ssl => true, format: :json}.merge!(options))
75
+
76
+ raise ServerError.new(response.status, response.body) if response.status >= 500
77
+ raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
78
+
79
+ response.body
80
+ end
81
+
82
+ end
83
+ end
84
+ end
@@ -1,3 +1,3 @@
1
1
  module Blupee
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blupee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blupee Inc.
@@ -173,8 +173,8 @@ files:
173
173
  - lib/blupee/api/omise_go.rb
174
174
  - lib/blupee/api/token.rb
175
175
  - lib/blupee/api/ether.rb
176
+ - lib/blupee/api/auth.rb
176
177
  - lib/blupee/version.rb
177
- - lib/blupee/auth.rb
178
178
  - lib/blupee/configuration.rb
179
179
  homepage: https://github.com/fogonthedowns/blupee_ruby
180
180
  licenses:
@@ -1,82 +0,0 @@
1
- # OpenSSL and Base64 are required to support signed_request
2
- require 'openssl'
3
- require 'base64'
4
-
5
- module Blupee
6
- class Auth
7
- attr_reader :client_id, :client_secret
8
-
9
- # Creates a new client.
10
- #
11
- # @param client_id [String, Integer] a Blupee client ID
12
- # @param client_secret a Blupee client secret
13
- def initialize(client_id = nil, client_secret = nil)
14
- @client_id = client_id || Blupee.config.client_id
15
- @client_secret = client_secret || Blupee.config.client_secret
16
- end
17
-
18
- # access tokens
19
-
20
- # Fetches an access token, token expiration, and other info from Blupee.
21
- # Useful when you've received an OAuth code using the server-side authentication process.
22
- # @see url_for_oauth_code
23
- #
24
- # @note (see #url_for_oauth_code)
25
- #
26
- # @param code (see #url_for_access_token)
27
- # @param options any additional parameters to send to Blupee when redeeming the token
28
- #
29
- # @raise Blupee::OAuthTokenRequestError if Blupee returns an error response
30
- #
31
- # @return a hash of the access token info returned by Blupee (token, expiration, etc.)
32
- def get_access_token_info(options = {})
33
- # convenience method to get a the application's sessionless access token
34
- get_token_from_server({}, true, options)
35
- end
36
-
37
- # Fetches the application's access token (ignoring expiration and other info).
38
- # @see get_app_access_token_info
39
- #
40
- # @param (see #get_app_access_token_info)
41
- #
42
- # @return the application access token
43
- def get_access_token(options = {})
44
- if info = get_access_token_info(options)
45
- Blupee.config.access_token = info["access_token"]
46
- end
47
- end
48
-
49
- protected
50
-
51
- def get_token_from_server(args, post = false, options = {})
52
- # fetch the result from Blupee's servers
53
- response = fetch_token_string(args, post, "auth", options)
54
- parse_access_token(response)
55
- end
56
-
57
- def parse_access_token(response_text)
58
- JSON.parse(response_text)
59
- rescue JSON::ParserError
60
- response_text.split("&").inject({}) do |hash, bit|
61
- key, value = bit.split("=")
62
- hash.merge!(key => value)
63
- end
64
- end
65
-
66
-
67
- def fetch_token_string(args, post = false, endpoint = "auth", options = {})
68
- raise ClientError if @client_id == nil
69
- raise ClientError if @client_secret == nil
70
- response = Blupee.make_request("/#{endpoint}", {
71
- :client_id => @client_id,
72
- :client_secret => @client_secret
73
- }.merge!(args), post ? "post" : "get", {:use_ssl => true, format: :json}.merge!(options))
74
-
75
- raise ServerError.new(response.status, response.body) if response.status >= 500
76
- raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
77
-
78
- response.body
79
- end
80
-
81
- end
82
- end