simpal 0.1.0 → 1.0.0
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -3
- data/CHANGELOG.md +5 -1
- data/Guardfile +17 -0
- data/lib/simpal/api/payments/authorizations.rb +2 -2
- data/lib/simpal/client.rb +7 -4
- data/lib/simpal/constants.rb +1 -1
- data/lib/simpal/middleware/authorization.rb +13 -5
- data/lib/simpal/payment/authorization.rb +1 -2
- data/lib/simpal.rb +0 -1
- data/simpal.gemspec +6 -3
- metadata +56 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ff9bd39a1b3bf614656ba4aa4db6bda6de2ce675e2d429d705f00737e02fa324
|
|
4
|
+
data.tar.gz: 3d3b24a4727dc9321d37ffb10cc502a7141e759453cf42c6c5ee13728b308994
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6af06ce6dbfb1b8a6151894089b00642e0f8b221edf1f04e1b8d63b041226794ffcf04cc807d5980a4cd1f605c248cde3bc7e240a5c64340541ef744ee97e9f9
|
|
7
|
+
data.tar.gz: fd272791debd28b4896bdb8fd1391dbdbcf8f9adc43322b9c9db81bf8675d055e53bde820b1725e3808ca75bfc639b5e24b813baa16952ca342d9629e1dfa37a
|
data/.rubocop.yml
CHANGED
|
@@ -11,8 +11,18 @@ Layout/LineLength:
|
|
|
11
11
|
|
|
12
12
|
Metrics/BlockLength:
|
|
13
13
|
Exclude:
|
|
14
|
+
- '**/*.gemspec'
|
|
14
15
|
- 'spec/**/*'
|
|
15
16
|
|
|
17
|
+
Metrics/ClassLength:
|
|
18
|
+
Exclude:
|
|
19
|
+
- 'spec/support/fake_*.rb'
|
|
20
|
+
|
|
21
|
+
Metrics/MethodLength:
|
|
22
|
+
Max: 40
|
|
23
|
+
Exclude:
|
|
24
|
+
- 'spec/support/fake_*.rb'
|
|
25
|
+
|
|
16
26
|
Metrics/AbcSize:
|
|
17
27
|
Max: 40
|
|
18
28
|
|
|
@@ -22,8 +32,5 @@ Metrics/CyclomaticComplexity:
|
|
|
22
32
|
Metrics/PerceivedComplexity:
|
|
23
33
|
Max: 20
|
|
24
34
|
|
|
25
|
-
Metrics/MethodLength:
|
|
26
|
-
Max: 40
|
|
27
|
-
|
|
28
35
|
Naming/VariableNumber:
|
|
29
36
|
EnforcedStyle: snake_case
|
data/CHANGELOG.md
CHANGED
data/Guardfile
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
|
4
|
+
require 'guard/rspec/dsl'
|
|
5
|
+
|
|
6
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
|
7
|
+
|
|
8
|
+
# RSpec files
|
|
9
|
+
rspec = dsl.rspec
|
|
10
|
+
watch(rspec.spec_files)
|
|
11
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
|
12
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
|
13
|
+
|
|
14
|
+
# Ruby library files
|
|
15
|
+
ruby = dsl.ruby
|
|
16
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
|
17
|
+
end
|
|
@@ -54,12 +54,12 @@ module Simpal
|
|
|
54
54
|
# @param id [String] The ID of an authorized payment.
|
|
55
55
|
# @param headers [Hash] The custom headers to add to the request.
|
|
56
56
|
# @param client [Simpal::Client] The API client to make the request with.
|
|
57
|
-
# @return [
|
|
57
|
+
# @return [Boolean] `true` when the authorization has been voided, `false` otherwise.
|
|
58
58
|
#
|
|
59
59
|
def self.void(id, headers: {}, client: nil)
|
|
60
60
|
client = Simpal.client_for(client)
|
|
61
61
|
response = client.connection.post("/v2/payments/authorizations/#{id}/void", nil, headers)
|
|
62
|
-
response.
|
|
62
|
+
response.success?
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
end
|
data/lib/simpal/client.rb
CHANGED
|
@@ -51,12 +51,15 @@ module Simpal
|
|
|
51
51
|
#
|
|
52
52
|
def connection
|
|
53
53
|
@connection ||= Faraday.new(service_url, headers: headers) do |connection|
|
|
54
|
-
connection.
|
|
54
|
+
connection.request :json
|
|
55
|
+
|
|
56
|
+
connection.response :raise_error
|
|
57
|
+
connection.response :json
|
|
58
|
+
|
|
55
59
|
connection.use Simpal::Middleware::Headers
|
|
56
|
-
connection.use FaradayMiddleware::EncodeJson
|
|
57
|
-
connection.use FaradayMiddleware::ParseJson
|
|
58
60
|
connection.use Simpal::Middleware::Authorization, self
|
|
59
|
-
|
|
61
|
+
|
|
62
|
+
connection.adapter :net_http
|
|
60
63
|
end
|
|
61
64
|
end
|
|
62
65
|
end
|
data/lib/simpal/constants.rb
CHANGED
|
@@ -42,17 +42,25 @@ module Simpal
|
|
|
42
42
|
|
|
43
43
|
def connection
|
|
44
44
|
@connection ||= Faraday.new(client.service_url, headers: client.headers) do |connection|
|
|
45
|
-
connection.
|
|
46
|
-
|
|
47
|
-
connection.
|
|
48
|
-
connection.
|
|
45
|
+
connection.request :url_encoded
|
|
46
|
+
|
|
47
|
+
connection.response :raise_error
|
|
48
|
+
connection.response :json
|
|
49
|
+
|
|
50
|
+
connection.request :authorization, :basic, client.client_id, client.client_secret
|
|
49
51
|
end
|
|
50
52
|
end
|
|
51
53
|
|
|
54
|
+
def expiry_base_date_for(response)
|
|
55
|
+
Time.httpdate(response.headers['date'])
|
|
56
|
+
rescue StandardError
|
|
57
|
+
Time.now
|
|
58
|
+
end
|
|
59
|
+
|
|
52
60
|
def refresh_access_token!
|
|
53
61
|
response = connection.post('/v1/oauth2/token', grant_type: :client_credentials)
|
|
54
62
|
@access_token = response.body['access_token']
|
|
55
|
-
@access_token_expires_at =
|
|
63
|
+
@access_token_expires_at = expiry_base_date_for(response) + response.body['expires_in'].to_i
|
|
56
64
|
end
|
|
57
65
|
|
|
58
66
|
def refresh_access_token
|
|
@@ -50,11 +50,10 @@ module Simpal
|
|
|
50
50
|
# @param id [String] The ID of an authorized payment.
|
|
51
51
|
# @param headers [Hash] The custom headers to add to the request.
|
|
52
52
|
# @param client [Simpal::Client] The API client to make the request with.
|
|
53
|
-
# @return [Boolean] `true`
|
|
53
|
+
# @return [Boolean] `true` when the authorization has been voided, `false` otherwise.
|
|
54
54
|
#
|
|
55
55
|
def self.void(id, headers: {}, client: nil)
|
|
56
56
|
API::Payments::Authorizations.void(id, headers: headers, client: client)
|
|
57
|
-
true
|
|
58
57
|
end
|
|
59
58
|
end
|
|
60
59
|
end
|
data/lib/simpal.rb
CHANGED
data/simpal.gemspec
CHANGED
|
@@ -27,13 +27,16 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
28
28
|
spec.require_paths = ['lib']
|
|
29
29
|
|
|
30
|
-
spec.add_dependency 'faraday', '~>
|
|
31
|
-
spec.add_dependency 'faraday_middleware', '~> 1.0'
|
|
30
|
+
spec.add_dependency 'faraday', '~> 2.0'
|
|
32
31
|
|
|
33
|
-
spec.add_development_dependency '
|
|
32
|
+
spec.add_development_dependency 'guard', '~> 2.18'
|
|
33
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.7'
|
|
34
|
+
spec.add_development_dependency 'pry', '~> 0.14.1'
|
|
34
35
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
35
36
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
36
37
|
spec.add_development_dependency 'rubocop', '~> 1.7'
|
|
37
38
|
spec.add_development_dependency 'rubocop-rake', '~> 0.5.1'
|
|
38
39
|
spec.add_development_dependency 'rubocop-rspec', '~> 2.3'
|
|
40
|
+
spec.add_development_dependency 'sinatra', '~> 2.1'
|
|
41
|
+
spec.add_development_dependency 'webmock', '~> 3.14'
|
|
39
42
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: simpal
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nialto Services
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-03-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -16,42 +16,56 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '2.0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '2.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: guard
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
34
|
-
type: :
|
|
33
|
+
version: '2.18'
|
|
34
|
+
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '2.18'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: guard-rspec
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '4.7'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '4.7'
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
56
|
name: pry
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
|
44
58
|
requirements:
|
|
45
|
-
- - "
|
|
59
|
+
- - "~>"
|
|
46
60
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
61
|
+
version: 0.14.1
|
|
48
62
|
type: :development
|
|
49
63
|
prerelease: false
|
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
65
|
requirements:
|
|
52
|
-
- - "
|
|
66
|
+
- - "~>"
|
|
53
67
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
68
|
+
version: 0.14.1
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: rake
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +136,34 @@ dependencies:
|
|
|
122
136
|
- - "~>"
|
|
123
137
|
- !ruby/object:Gem::Version
|
|
124
138
|
version: '2.3'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: sinatra
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - "~>"
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '2.1'
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - "~>"
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '2.1'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: webmock
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '3.14'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '3.14'
|
|
125
167
|
description:
|
|
126
168
|
email:
|
|
127
169
|
- support@nialtoservices.co.uk
|
|
@@ -136,6 +178,7 @@ files:
|
|
|
136
178
|
- CHANGELOG.md
|
|
137
179
|
- CODE_OF_CONDUCT.md
|
|
138
180
|
- Gemfile
|
|
181
|
+
- Guardfile
|
|
139
182
|
- LICENSE
|
|
140
183
|
- README.md
|
|
141
184
|
- Rakefile
|
|
@@ -179,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
179
222
|
- !ruby/object:Gem::Version
|
|
180
223
|
version: '0'
|
|
181
224
|
requirements: []
|
|
182
|
-
rubygems_version: 3.2.
|
|
225
|
+
rubygems_version: 3.2.32
|
|
183
226
|
signing_key:
|
|
184
227
|
specification_version: 4
|
|
185
228
|
summary: A simple, lightweight wrapper around PayPal's REST API.
|