promisepay 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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