blupee 0.1.0 → 0.1.1

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: ef0f440d08a682ab70e94af6af3e858a0ffe78e4
4
- data.tar.gz: a53abc212a85a0600bdd76a56e694a7a9dc64bd5
3
+ metadata.gz: 052a22c88b4cfe6a9e334950ede54f3e8dfba972
4
+ data.tar.gz: bf1a87f3243fcc48e9500ab0ac66f0075999f9ae
5
5
  SHA512:
6
- metadata.gz: 71549040f02d1dc736229154ca6032151b32a5df13b85f6acfa738e2efe7f6377e50ed47b97e511c79bf6ee9356a851fde7dd6554a62f244b3fa629a18e6a6d8
7
- data.tar.gz: d683c0abe0f40604683674c58cd56dbae19dc8f080678c5f7c01314a989827e7f00ead78e92a8c63c5de59114988b4cd1b8f2c18f070445496fb416acc100b94
6
+ metadata.gz: ab33f2ed4a2e6c073d4366d1f65257c3da649244ceaaef27c59c77ffd98f006e2e0bbf583884003af3a26942bc0876133eebbe155b53df666d3563bd332e8f06
7
+ data.tar.gz: 71c780862d5eb6286c8d90c3ed721adc54ddd54aa6bd670995fbfa6badc27f9967040b18e1bc4a3d2818cbb6d17968849c1c0608154a8f8ffa82d9d4982c6442
data/lib/blupee.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  require_relative "blupee/version"
2
- require_relative "blupee/ether"
2
+ require_relative 'blupee/errors'
3
3
  require_relative "blupee/auth"
4
4
  require_relative "blupee/configuration"
5
5
  require_relative "blupee/http_service"
6
6
  require_relative "blupee/http_service/request"
7
7
  require_relative "blupee/http_service/response"
8
+ require_relative "blupee/api/ether"
8
9
 
9
10
  module Blupee
10
11
 
@@ -0,0 +1,54 @@
1
+ require 'faraday'
2
+ require 'json'
3
+
4
+ module Blupee
5
+ module API
6
+ class Ether
7
+ attr_reader :coin_symbol, :balance, :wallet, :transaction_hash
8
+
9
+ def initialize(attributes)
10
+ @coin_symbol = attributes["coin_symbol"]
11
+ @balance = attributes["balance"]
12
+ @wallet_address = attributes["wallet_address"]
13
+ end
14
+
15
+ def self.balance(id, options = {})
16
+ response = Blupee.make_request("/eth/#{id}", {}, "get", {:use_ssl => true}.merge!(options))
17
+ raise ServerError.new(response.status, response.body) if response.status >= 500
18
+ raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
19
+ response
20
+ end
21
+
22
+
23
+ def self.new_wallet(args, options = {})
24
+ response = Blupee.make_request("/eth/new",
25
+ {}.merge!(args),
26
+ "post",
27
+ {:use_ssl => true,
28
+ format: :json}.merge!(options))
29
+ raise ServerError.new(response.status, response.body) if response.status >= 500
30
+ raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
31
+ response
32
+ end
33
+
34
+ # {:to_address=>"", :from_address=>"", :password=>"", :quantity=>0.001}
35
+ def self.send_ether(args, options = {})
36
+ response = Blupee.make_request("/eth/send",
37
+ {}.merge!(args),
38
+ "post",
39
+ {:use_ssl => true,
40
+ format: :json}.merge!(options))
41
+
42
+ raise ServerError.new(response.status, response.body) if response.status >= 500
43
+ raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
44
+ response
45
+ end
46
+
47
+
48
+ def self.all
49
+ eth_wallet = JSON.parse(response.body)
50
+ eth_wallet.map { |attributes| new(attributes) }
51
+ end
52
+ end
53
+ end
54
+ end
data/lib/blupee/auth.rb CHANGED
@@ -65,13 +65,15 @@ module Blupee
65
65
 
66
66
 
67
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
68
70
  response = Blupee.make_request("/#{endpoint}", {
69
71
  :client_id => @client_id,
70
72
  :client_secret => @client_secret
71
73
  }.merge!(args), post ? "post" : "get", {:use_ssl => true, format: :json}.merge!(options))
72
74
 
73
- # raise ServerError.new(response.status, response.body) if response.status >= 500
74
- # raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
75
+ raise ServerError.new(response.status, response.body) if response.status >= 500
76
+ raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
75
77
 
76
78
  response.body
77
79
  end
@@ -0,0 +1,100 @@
1
+ module Blupee
2
+
3
+ class BlupeeError < StandardError; end
4
+
5
+ module API
6
+
7
+ # The OAuth signature is incomplete, invalid, or using an unsupported algorithm
8
+ class OAuthSignatureError < ::Blupee::BlupeeError; end
9
+
10
+ # Required for realtime updates validation
11
+ class AppSecretNotDefinedError < ::Blupee::BlupeeError; end
12
+
13
+ # Facebook responded with an error to an API request. If the exception contains a nil
14
+ # http_status, then the error was detected before making a call to Facebook. (e.g. missing access token)
15
+ class APIError < ::Blupee::BlupeeError
16
+ attr_accessor :http_status,
17
+ :response_body,
18
+ :error_type,
19
+ :error_code,
20
+ :error_subcode,
21
+ :error_message,
22
+ :error_user_msg,
23
+ :error_user_title,
24
+ :error_trace_id,
25
+ :error_debug,
26
+ :error_rev
27
+
28
+ # Create a new API Error
29
+ #
30
+ # @param http_status [Integer] The HTTP status code of the response
31
+ # @param response_body [String] The response body
32
+ # @param error_info One of the following:
33
+ # [Hash] The error information extracted from the request
34
+ # ("type", "code", "error_subcode", "message")
35
+ # [String] The error description
36
+ # If error_info is nil or not provided, the method will attempt to extract
37
+ # the error info from the response_body
38
+ #
39
+ # @return the newly created APIError
40
+ def initialize(http_status, response_body, error_info = nil)
41
+ if response_body
42
+ self.response_body = response_body.strip
43
+ else
44
+ self.response_body = ''
45
+ end
46
+ self.http_status = http_status
47
+
48
+ if error_info && error_info.is_a?(String)
49
+ message = error_info
50
+ else
51
+ unless error_info
52
+ begin
53
+ error_info = JSON.parse(response_body)['error'] if response_body
54
+ rescue
55
+ end
56
+ error_info ||= {}
57
+ end
58
+
59
+ self.error_type = error_info["type"]
60
+ self.error_message = error_info["message"]
61
+
62
+ self.error_trace_id = error_info["x-blu-trace-id"]
63
+ self.error_debug = error_info["x-blu-debug"]
64
+ self.error_rev = error_info["x-blu-rev"]
65
+
66
+ error_array = []
67
+ %w(type code error_subcode message error_user_title error_user_msg x-blu-trace-id).each do |key|
68
+ error_array << "#{key}: #{error_info[key]}" if error_info[key]
69
+ end
70
+
71
+ if error_array.empty?
72
+ message = self.response_body
73
+ else
74
+ message = error_array.join(', ')
75
+ end
76
+ end
77
+ message += " [HTTP #{http_status}]" if http_status
78
+
79
+ super(message)
80
+ end
81
+ end
82
+
83
+ # Facebook returned an invalid response body
84
+ class BadBlupeeAPIResponse < APIError; end
85
+
86
+ # Facebook responded with an error while attempting to request an access token
87
+ class OAuthTokenRequestError < APIError; end
88
+
89
+ # Any error with a 5xx HTTP status code
90
+ class ServerError < APIError; end
91
+
92
+ # Any error with a 4xx HTTP status code
93
+ class ClientError < APIError; end
94
+
95
+ # All graph API authentication failures.
96
+ class AuthenticationError < ClientError; end
97
+
98
+ end
99
+
100
+ end
@@ -1,3 +1,3 @@
1
1
  module Blupee
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blupee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blupee Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-29 00:00:00.000000000 Z
11
+ date: 2017-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -166,9 +166,10 @@ extensions: []
166
166
  extra_rdoc_files: []
167
167
  files:
168
168
  - lib/blupee.rb
169
+ - lib/blupee/api/ether.rb
169
170
  - lib/blupee/auth.rb
170
171
  - lib/blupee/configuration.rb
171
- - lib/blupee/ether.rb
172
+ - lib/blupee/errors.rb
172
173
  - lib/blupee/http_service.rb
173
174
  - lib/blupee/http_service/request.rb
174
175
  - lib/blupee/http_service/response.rb
data/lib/blupee/ether.rb DELETED
@@ -1,55 +0,0 @@
1
- require 'faraday'
2
- require 'json'
3
-
4
- module Blupee
5
- class Ether
6
- attr_reader :coin_symbol, :balance, :wallet, :transaction_hash
7
-
8
- def initialize(attributes)
9
- @coin_symbol = attributes["coin_symbol"]
10
- @balance = attributes["balance"]
11
- @wallet_address = attributes["wallet_address"]
12
- end
13
-
14
- def self.balance(id, options = {})
15
- response = Blupee.make_request("/eth/#{id}", {}, "get", {:use_ssl => true}.merge!(options))
16
- # raise ServerError.new(response.status, response.body) if response.status >= 500
17
- # raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
18
- attributes = JSON.parse(response.body)
19
- new(attributes)
20
- end
21
-
22
-
23
- def self.new_wallet(password, options = {})
24
- response = Blupee.make_request("/eth/new", {
25
- :password => password
26
- }, "post", {:use_ssl => true, format: :json}.merge!(options))
27
-
28
- # raise ServerError.new(response.status, response.body) if response.status >= 500
29
- # raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
30
- attributes = JSON.parse(response.body)
31
- new(attributes)
32
- end
33
-
34
- # {:to_address=>"", :from_address=>"", :password=>"", :quantity=>0.001}
35
- def self.send_ether(args, options = {})
36
- response = Blupee.make_request("/eth/send",
37
- {}.merge!(args),
38
- "post",
39
- {:use_ssl => true,
40
- format: :json}.merge!(options))
41
-
42
- # raise ServerError.new(response.status, response.body) if response.status >= 500
43
- # raise OAuthTokenRequestError.new(response.status, response.body) if response.status >= 400
44
- puts response.body
45
- attributes = JSON.parse(response.body)
46
- new(attributes)
47
- end
48
-
49
-
50
- def self.all
51
- eth_wallet = JSON.parse(response.body)
52
- eth_wallet.map { |attributes| new(attributes) }
53
- end
54
- end
55
- end