promisepay 0.0.4 → 0.0.5

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.
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require 'bundler/gem_tasks'
1
+ require 'bundler/gem_tasks'
data/lib/promisepay.rb CHANGED
@@ -1,13 +1,13 @@
1
- require_relative 'promisepay/client'
2
- require_relative 'promisepay/default'
3
- require_relative 'promisepay/error'
4
- require_relative 'promisepay/version'
5
-
6
- # Ruby toolkit for the Promisepay API
7
- module Promisepay
8
- class << self
9
- include Promisepay::Configurable
10
- end
11
- end
12
-
13
- Promisepay.setup
1
+ require_relative 'promisepay/client'
2
+ require_relative 'promisepay/default'
3
+ require_relative 'promisepay/error'
4
+ require_relative 'promisepay/version'
5
+
6
+ # Ruby toolkit for the Promisepay API
7
+ module Promisepay
8
+ class << self
9
+ include Promisepay::Configurable
10
+ end
11
+ end
12
+
13
+ Promisepay.setup
@@ -1,147 +1,146 @@
1
- require_relative 'configurable'
2
- require_relative 'models/base_model'
3
- require_relative 'models/account'
4
- require_relative 'models/bank_account'
5
- require_relative 'models/card_account'
6
- require_relative 'models/fee'
7
- require_relative 'models/item'
8
- require_relative 'models/paypal_account'
9
- require_relative 'models/token'
10
- require_relative 'models/transaction'
11
- require_relative 'models/user'
12
- require_relative 'resources/base_resource'
13
- require_relative 'resources/account_resource'
14
- require_relative 'resources/bank_account_resource'
15
- require_relative 'resources/card_account_resource'
16
- require_relative 'resources/fee_resource'
17
- require_relative 'resources/item_resource'
18
- require_relative 'resources/paypal_account_resource'
19
- require_relative 'resources/token_resource'
20
- require_relative 'resources/transaction_resource'
21
- require_relative 'resources/user_resource'
22
- require 'json'
23
- require 'faraday'
24
-
25
- module Promisepay
26
- # Client for the Promisepay API
27
- #
28
- # @see http://docs.promisepay.com/v2.2/docs/overview
29
- class Client
30
- include Promisepay::Configurable
31
-
32
- def initialize(options = {})
33
- # Use options passed in, but fall back to module defaults
34
- Promisepay::Configurable.keys.each do |key|
35
- instance_variable_set(
36
- :"@#{key}", options[key] || Promisepay.instance_variable_get(:"@#{key}")
37
- )
38
- end
39
- end
40
-
41
- # Create a new Faraday connection
42
- #
43
- # @return [Faraday::Connection]
44
- def connection
45
- Faraday.new(url: @api_endpoint) do |builder|
46
- builder.request :basic_auth, @username, @token
47
- builder.adapter :net_http
48
- end
49
- end
50
-
51
- # Make a HTTP GET request
52
- #
53
- # @param url [String] The path, relative to {#api_endpoint}
54
- # @param parameters [Hash] Query params for request
55
- # @return [Faraday::Response]
56
- def get(url, parameters = {})
57
- response = connection.get("#{api_endpoint}#{url}", parameters)
58
- on_complete(response)
59
- response
60
- end
61
-
62
- # Make a HTTP POST request
63
- #
64
- # @param url [String] The path, relative to {#api_endpoint}
65
- # @param parameters [Hash] Query params for request
66
- # @return [Faraday::Response]
67
- def post(url, parameters = {})
68
- response = connection.post do |req|
69
- req.url "#{api_endpoint}#{url}"
70
- req.headers['Content-Type'] = 'application/json'
71
- req.body = parameters.to_json
72
- end
73
- on_complete(response)
74
- response
75
- end
76
-
77
- # Make a HTTP PATCH request
78
- #
79
- # @param url [String] The path, relative to {#api_endpoint}
80
- # @param parameters [Hash] Query params for request
81
- # @return [Faraday::Response]
82
- def patch(url, parameters = {})
83
- response = connection.patch do |req|
84
- req.url "#{api_endpoint}#{url}"
85
- req.headers['Content-Type'] = 'application/json'
86
- req.body = parameters.to_json
87
- end
88
- on_complete(response)
89
- response
90
- end
91
-
92
- # Make a HTTP DELETE request
93
- #
94
- # @param url [String] The path, relative to {#api_endpoint}
95
- # @param parameters [Hash] Query params for request
96
- # @return [Faraday::Response]
97
- def delete(url, parameters = {})
98
- response = connection.delete do |req|
99
- req.url "#{api_endpoint}#{url}"
100
- req.headers['Content-Type'] = 'application/json'
101
- req.body = parameters.to_json
102
- end
103
- on_complete(response)
104
- response
105
- end
106
-
107
- # Available resources for {Client}
108
- #
109
- # @return [Hash]
110
- def self.resources
111
- {
112
- bank_accounts: BankAccountResource,
113
- card_accounts: CardAccountResource,
114
- fees: FeeResource,
115
- items: ItemResource,
116
- paypal_accounts: PaypalAccountResource,
117
- transactions: TransactionResource,
118
- users: UserResource,
119
- tokens: TokenResource
120
- }
121
- end
122
-
123
- # Catch calls for resources
124
- #
125
- def method_missing(name, *args, &block)
126
- if self.class.resources.keys.include?(name)
127
- resources[name] ||= self.class.resources[name].new(self)
128
- resources[name]
129
- else
130
- super
131
- end
132
- end
133
-
134
- # Resources being currently used
135
- #
136
- # @return [Hash]
137
- def resources
138
- @resources ||= {}
139
- end
140
-
141
- private
142
-
143
- def on_complete(response)
144
- fail Promisepay::Error.from_response(response) unless response.success?
145
- end
146
- end
147
- end
1
+ require_relative 'configurable'
2
+ require_relative 'models/base_model'
3
+ require_relative 'models/account'
4
+ require_relative 'models/bank_account'
5
+ require_relative 'models/card_account'
6
+ require_relative 'models/fee'
7
+ require_relative 'models/item'
8
+ require_relative 'models/paypal_account'
9
+ require_relative 'models/transaction'
10
+ require_relative 'models/user'
11
+ require_relative 'resources/base_resource'
12
+ require_relative 'resources/account_resource'
13
+ require_relative 'resources/bank_account_resource'
14
+ require_relative 'resources/card_account_resource'
15
+ require_relative 'resources/fee_resource'
16
+ require_relative 'resources/item_resource'
17
+ require_relative 'resources/paypal_account_resource'
18
+ require_relative 'resources/token_resource'
19
+ require_relative 'resources/transaction_resource'
20
+ require_relative 'resources/user_resource'
21
+ require 'json'
22
+ require 'faraday'
23
+
24
+ module Promisepay
25
+ # Client for the Promisepay API
26
+ #
27
+ # @see http://docs.promisepay.com/v2.2/docs/overview
28
+ class Client
29
+ include Promisepay::Configurable
30
+
31
+ def initialize(options = {})
32
+ # Use options passed in, but fall back to module defaults
33
+ Promisepay::Configurable.keys.each do |key|
34
+ instance_variable_set(
35
+ :"@#{key}", options[key] || Promisepay.instance_variable_get(:"@#{key}")
36
+ )
37
+ end
38
+ end
39
+
40
+ # Create a new Faraday connection
41
+ #
42
+ # @return [Faraday::Connection]
43
+ def connection
44
+ Faraday.new(url: @api_endpoint) do |builder|
45
+ builder.request :basic_auth, @username, @token
46
+ builder.adapter :net_http
47
+ end
48
+ end
49
+
50
+ # Make a HTTP GET request
51
+ #
52
+ # @param url [String] The path, relative to {#api_endpoint}
53
+ # @param parameters [Hash] Query params for request
54
+ # @return [Faraday::Response]
55
+ def get(url, parameters = {})
56
+ response = connection.get("#{api_endpoint}#{url}", parameters)
57
+ on_complete(response)
58
+ response
59
+ end
60
+
61
+ # Make a HTTP POST request
62
+ #
63
+ # @param url [String] The path, relative to {#api_endpoint}
64
+ # @param parameters [Hash] Query params for request
65
+ # @return [Faraday::Response]
66
+ def post(url, parameters = {})
67
+ response = connection.post do |req|
68
+ req.url "#{api_endpoint}#{url}"
69
+ req.headers['Content-Type'] = 'application/json'
70
+ req.body = parameters.to_json
71
+ end
72
+ on_complete(response)
73
+ response
74
+ end
75
+
76
+ # Make a HTTP PATCH request
77
+ #
78
+ # @param url [String] The path, relative to {#api_endpoint}
79
+ # @param parameters [Hash] Query params for request
80
+ # @return [Faraday::Response]
81
+ def patch(url, parameters = {})
82
+ response = connection.patch do |req|
83
+ req.url "#{api_endpoint}#{url}"
84
+ req.headers['Content-Type'] = 'application/json'
85
+ req.body = parameters.to_json
86
+ end
87
+ on_complete(response)
88
+ response
89
+ end
90
+
91
+ # Make a HTTP DELETE request
92
+ #
93
+ # @param url [String] The path, relative to {#api_endpoint}
94
+ # @param parameters [Hash] Query params for request
95
+ # @return [Faraday::Response]
96
+ def delete(url, parameters = {})
97
+ response = connection.delete do |req|
98
+ req.url "#{api_endpoint}#{url}"
99
+ req.headers['Content-Type'] = 'application/json'
100
+ req.body = parameters.to_json
101
+ end
102
+ on_complete(response)
103
+ response
104
+ end
105
+
106
+ # Available resources for {Client}
107
+ #
108
+ # @return [Hash]
109
+ def self.resources
110
+ {
111
+ bank_accounts: BankAccountResource,
112
+ card_accounts: CardAccountResource,
113
+ fees: FeeResource,
114
+ items: ItemResource,
115
+ paypal_accounts: PaypalAccountResource,
116
+ transactions: TransactionResource,
117
+ users: UserResource,
118
+ tokens: TokenResource
119
+ }
120
+ end
121
+
122
+ # Catch calls for resources
123
+ #
124
+ def method_missing(name, *args, &block)
125
+ if self.class.resources.keys.include?(name)
126
+ resources[name] ||= self.class.resources[name].new(self)
127
+ resources[name]
128
+ else
129
+ super
130
+ end
131
+ end
132
+
133
+ # Resources being currently used
134
+ #
135
+ # @return [Hash]
136
+ def resources
137
+ @resources ||= {}
138
+ end
139
+
140
+ private
141
+
142
+ def on_complete(response)
143
+ fail Promisepay::Error.from_response(response) unless response.success?
144
+ end
145
+ end
146
+ end
@@ -1,49 +1,49 @@
1
- module Promisepay
2
- # Configuration options for {Client}, defaulting to values in {Default}.
3
- module Configurable
4
- # @!attribute api_domain
5
- # @return [String] Promisepay API domain name. default: api.promisepay.com
6
- # @!attribute environment
7
- # @see http://docs.promisepay.com/v2.2/docs/environments
8
- # @return [String] Promisepay environment. default: test
9
- # @!attribute token
10
- # @see http://docs.promisepay.com/v2.2/docs/overview-2
11
- # @return [String] Promisepay token for Basic Authentication.
12
- # @!attribute username
13
- # @see http://docs.promisepay.com/v2.2/docs/overview-2
14
- # @return [String] Promisepay username for Basic Authentication.
15
-
16
- attr_accessor :api_domain, :environment, :token, :username
17
-
18
- class << self
19
- # List of configurable keys for {Promisepay::Client}.
20
- #
21
- # @return [Array] of option keys
22
- def keys
23
- @keys ||= [
24
- :environment,
25
- :api_domain,
26
- :token,
27
- :username
28
- ]
29
- end
30
- end
31
-
32
- # Reset configuration options to default values.
33
- def reset!
34
- Promisepay::Configurable.keys.each do |key|
35
- instance_variable_set(:"@#{key}", Promisepay::Default.options[key])
36
- end
37
- self
38
- end
39
- alias_method :setup, :reset!
40
-
41
- # API endpoint to be used by {Promisepay::Client}.
42
- # Built from {#environment} and {#api_domain}
43
- #
44
- # @return [String]
45
- def api_endpoint
46
- "https://#{@environment}.#{@api_domain}/"
47
- end
48
- end
49
- end
1
+ module Promisepay
2
+ # Configuration options for {Client}, defaulting to values in {Default}.
3
+ module Configurable
4
+ # @!attribute api_domain
5
+ # @return [String] Promisepay API domain name. default: api.promisepay.com
6
+ # @!attribute environment
7
+ # @see http://docs.promisepay.com/v2.2/docs/environments
8
+ # @return [String] Promisepay environment. default: test
9
+ # @!attribute token
10
+ # @see http://docs.promisepay.com/v2.2/docs/overview-2
11
+ # @return [String] Promisepay token for Basic Authentication.
12
+ # @!attribute username
13
+ # @see http://docs.promisepay.com/v2.2/docs/overview-2
14
+ # @return [String] Promisepay username for Basic Authentication.
15
+
16
+ attr_accessor :api_domain, :environment, :token, :username
17
+
18
+ class << self
19
+ # List of configurable keys for {Promisepay::Client}.
20
+ #
21
+ # @return [Array] of option keys
22
+ def keys
23
+ @keys ||= [
24
+ :environment,
25
+ :api_domain,
26
+ :token,
27
+ :username
28
+ ]
29
+ end
30
+ end
31
+
32
+ # Reset configuration options to default values.
33
+ def reset!
34
+ Promisepay::Configurable.keys.each do |key|
35
+ instance_variable_set(:"@#{key}", Promisepay::Default.options[key])
36
+ end
37
+ self
38
+ end
39
+ alias_method :setup, :reset!
40
+
41
+ # API endpoint to be used by {Promisepay::Client}.
42
+ # Built from {#environment} and {#api_domain}
43
+ #
44
+ # @return [String]
45
+ def api_endpoint
46
+ "https://#{@environment}.#{@api_domain}/"
47
+ end
48
+ end
49
+ end
@@ -1,47 +1,47 @@
1
- module Promisepay
2
- # Default configuration options for {Client}
3
- module Default
4
- # Default API domain
5
- API_DOMAIN = 'api.promisepay.com'.freeze
6
-
7
- # Default environment
8
- ENVIRONMENT = 'test'.freeze
9
-
10
- class << self
11
- # Configuration options.
12
- #
13
- # @return [Hash]
14
- def options
15
- Hash[Promisepay::Configurable.keys.map { |key| [key, send(key)] }]
16
- end
17
-
18
- # Default environment from ENV or {ENVIRONMENT}.
19
- #
20
- # @return [String]
21
- def environment
22
- ENV['PROMISEPAY_ENVIRONMENT'] || ENVIRONMENT
23
- end
24
-
25
- # Default API domain from ENV or {API_DOMAIN}.
26
- #
27
- # @return [String]
28
- def api_domain
29
- ENV['PROMISEPAY_API_DOMAIN'] || API_DOMAIN
30
- end
31
-
32
- # Default token from ENV.
33
- #
34
- # @return [String]
35
- def token
36
- ENV['PROMISEPAY_TOKEN']
37
- end
38
-
39
- # Default username from ENV.
40
- #
41
- # @return [String]
42
- def username
43
- ENV['PROMISEPAY_USERNAME']
44
- end
45
- end
46
- end
47
- end
1
+ module Promisepay
2
+ # Default configuration options for {Client}
3
+ module Default
4
+ # Default API domain
5
+ API_DOMAIN = 'api.promisepay.com'.freeze
6
+
7
+ # Default environment
8
+ ENVIRONMENT = 'test'.freeze
9
+
10
+ class << self
11
+ # Configuration options.
12
+ #
13
+ # @return [Hash]
14
+ def options
15
+ Hash[Promisepay::Configurable.keys.map { |key| [key, send(key)] }]
16
+ end
17
+
18
+ # Default environment from ENV or {ENVIRONMENT}.
19
+ #
20
+ # @return [String]
21
+ def environment
22
+ ENV['PROMISEPAY_ENVIRONMENT'] || ENVIRONMENT
23
+ end
24
+
25
+ # Default API domain from ENV or {API_DOMAIN}.
26
+ #
27
+ # @return [String]
28
+ def api_domain
29
+ ENV['PROMISEPAY_API_DOMAIN'] || API_DOMAIN
30
+ end
31
+
32
+ # Default token from ENV.
33
+ #
34
+ # @return [String]
35
+ def token
36
+ ENV['PROMISEPAY_TOKEN']
37
+ end
38
+
39
+ # Default username from ENV.
40
+ #
41
+ # @return [String]
42
+ def username
43
+ ENV['PROMISEPAY_USERNAME']
44
+ end
45
+ end
46
+ end
47
+ end