listo 0.4.0 → 0.7.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/Gemfile.lock +10 -2
- data/README.md +1 -7
- data/lib/listo/certificate.rb +1 -1
- data/lib/listo/error.rb +3 -0
- data/lib/listo/invoicing.rb +22 -0
- data/lib/listo/pkey.rb +19 -4
- data/lib/listo/version.rb +1 -1
- data/listo-0.4.0.gem +0 -0
- data/listo-0.5.0.gem +0 -0
- data/listo-0.6.0.gem +0 -0
- data/listo.gemspec +4 -3
- metadata +22 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc4df545cbbb4dc7bc405e339e702e4d264da6e27657f88d1f07d625edde64ae
|
4
|
+
data.tar.gz: bccd9f0d490262ae3bf20e53afac7e39ea772c078acc26044973f33cc0c72c1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ef153051f584c38e275b1924ea8706d46137de91f7eb9dee8be26da85cacbdda221c2fa370959dfd76b7a6b55b2fb1dbd1d12d3fb2eb94f264ce01d376a068a
|
7
|
+
data.tar.gz: 7309effe55d0a1f4fbd348876e619003389618e101cd41db8fba514920589c6ac47822711f4d7dcddf2f5f016f7658b5a727ba32bcc37544d9d8fe67b2fae628
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
listo (0.
|
4
|
+
listo (0.7.0)
|
5
5
|
faraday (~> 0.17.3)
|
6
6
|
faraday_middleware (~> 0.10.0)
|
7
7
|
openssl (~> 2.1, >= 2.1.1)
|
@@ -11,16 +11,22 @@ GEM
|
|
11
11
|
specs:
|
12
12
|
addressable (2.5.2)
|
13
13
|
public_suffix (>= 2.0.2, < 4.0)
|
14
|
+
coderay (1.0.9)
|
14
15
|
crack (0.4.3)
|
15
16
|
safe_yaml (~> 1.0.0)
|
16
17
|
diff-lcs (1.3)
|
17
|
-
faraday (0.17.
|
18
|
+
faraday (0.17.4)
|
18
19
|
multipart-post (>= 1.2, < 3)
|
19
20
|
faraday_middleware (0.10.1)
|
20
21
|
faraday (>= 0.7.4, < 1.0)
|
21
22
|
hashdiff (0.3.7)
|
23
|
+
method_source (0.9.2)
|
22
24
|
multipart-post (2.1.1)
|
23
25
|
openssl (2.2.0)
|
26
|
+
pry (0.9.12)
|
27
|
+
coderay (~> 1.0.5)
|
28
|
+
method_source (~> 0.8)
|
29
|
+
slop (~> 3.4)
|
24
30
|
public_suffix (3.0.2)
|
25
31
|
rake (10.5.0)
|
26
32
|
rspec (3.7.0)
|
@@ -37,6 +43,7 @@ GEM
|
|
37
43
|
rspec-support (~> 3.7.0)
|
38
44
|
rspec-support (3.7.1)
|
39
45
|
safe_yaml (1.0.4)
|
46
|
+
slop (3.6.0)
|
40
47
|
vcr (3.0.3)
|
41
48
|
webmock (2.3.2)
|
42
49
|
addressable (>= 2.3.6)
|
@@ -49,6 +56,7 @@ PLATFORMS
|
|
49
56
|
DEPENDENCIES
|
50
57
|
bundler (~> 1.16)
|
51
58
|
listo!
|
59
|
+
pry (= 0.9.12)
|
52
60
|
rake (~> 10.0)
|
53
61
|
rspec (~> 3.0)
|
54
62
|
vcr (~> 3.0, >= 3.0.3)
|
data/README.md
CHANGED
@@ -27,18 +27,12 @@ Or install it yourself as:
|
|
27
27
|
Listo::Client.configure do |client|
|
28
28
|
client.token = 'LISTO_API_TOKEN'
|
29
29
|
client.cert_file = './path/cert.cer'
|
30
|
-
client.pkey_file = './path/
|
30
|
+
client.pkey_file = './path/pkey_der.key'
|
31
31
|
client.pkey_passphrase = 'passphrase'
|
32
32
|
client.debug_mode = false # default
|
33
33
|
end
|
34
34
|
```
|
35
35
|
|
36
|
-
The PKEY is usually provided in a DER format, you can create a copy in a PEM format with the following command:
|
37
|
-
|
38
|
-
```sh
|
39
|
-
openssl pkcs8 -inform DER -outform PEM -in pkcs8.key -out pkcs8.pem
|
40
|
-
```
|
41
|
-
|
42
36
|
### Invoicing
|
43
37
|
|
44
38
|
##### Generate XML
|
data/lib/listo/certificate.rb
CHANGED
data/lib/listo/error.rb
CHANGED
data/lib/listo/invoicing.rb
CHANGED
@@ -46,6 +46,28 @@ module Listo
|
|
46
46
|
response
|
47
47
|
end
|
48
48
|
|
49
|
+
|
50
|
+
def cancel(id)
|
51
|
+
params = {
|
52
|
+
passcode: client.pkey_passphrase,
|
53
|
+
certificate_der: cert.to_der64,
|
54
|
+
private_key_der: pkey.base64,
|
55
|
+
}
|
56
|
+
|
57
|
+
response = client.connection.post("invoicing/cancel/invoice/#{id}/", params).body
|
58
|
+
|
59
|
+
success_codes = [
|
60
|
+
201, # returned after the cancellation request
|
61
|
+
202 # returned after a cancellation request for an already requested cancellation invoice
|
62
|
+
]
|
63
|
+
|
64
|
+
if success_codes.exclude? response.dig('code')
|
65
|
+
raise Listo::Error::CancelError, response.dig('message')
|
66
|
+
end
|
67
|
+
|
68
|
+
response
|
69
|
+
end
|
70
|
+
|
49
71
|
private
|
50
72
|
|
51
73
|
def client
|
data/lib/listo/pkey.rb
CHANGED
@@ -2,11 +2,26 @@ require 'openssl'
|
|
2
2
|
|
3
3
|
module Listo
|
4
4
|
class PKey < SimpleDelegator
|
5
|
-
def initialize(
|
6
|
-
|
7
|
-
|
5
|
+
def initialize(pkey_file, pass_phrase = nil)
|
6
|
+
@key_der = File.read(pkey_file)
|
7
|
+
pem = pem(@key_der, pass_phrase)
|
8
8
|
|
9
|
-
super(
|
9
|
+
super(OpenSSL::PKey::RSA.new(pem, pass_phrase))
|
10
|
+
end
|
11
|
+
|
12
|
+
def pem(key_der, pass_phrase)
|
13
|
+
_key_der = []
|
14
|
+
_key_der << "-----BEGIN ENCRYPTED PRIVATE KEY-----"
|
15
|
+
_key_der += Base64.strict_encode64(key_der).scan(/.{1,64}/)
|
16
|
+
_key_der << "-----END ENCRYPTED PRIVATE KEY-----"
|
17
|
+
|
18
|
+
_key_der = _key_der.join("\n")
|
19
|
+
|
20
|
+
OpenSSL::PKey::RSA.new(_key_der, pass_phrase)
|
21
|
+
end
|
22
|
+
|
23
|
+
def base64
|
24
|
+
Base64.encode64(@key_der).delete("\n")
|
10
25
|
end
|
11
26
|
end
|
12
27
|
end
|
data/lib/listo/version.rb
CHANGED
data/listo-0.4.0.gem
ADDED
Binary file
|
data/listo-0.5.0.gem
ADDED
Binary file
|
data/listo-0.6.0.gem
ADDED
Binary file
|
data/listo.gemspec
CHANGED
@@ -5,12 +5,12 @@ require 'listo/version'
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'listo'
|
7
7
|
spec.version = Listo::VERSION
|
8
|
-
spec.authors = ['Luis Alfredo Lorenzo']
|
9
|
-
spec.email = ['babasbot@gmail.com']
|
8
|
+
spec.authors = ['Luis Alfredo Lorenzo', 'Guillermo Siliceo Trueba']
|
9
|
+
spec.email = ['babasbot@gmail.com', 'guillermo.siliceo@gmail.com']
|
10
10
|
|
11
11
|
spec.summary = 'A Ruby wrapper for the listo.mx API'
|
12
12
|
spec.description = 'A Ruby implementation for the listo.mx web API.'
|
13
|
-
spec.homepage = 'https://github.com/
|
13
|
+
spec.homepage = 'https://github.com/go-tandem/listo'
|
14
14
|
spec.license = 'Nonstandard'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'rake', '~> 10.0'
|
25
25
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
26
26
|
spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
|
27
|
+
spec.add_development_dependency 'pry', '0.9.12'
|
27
28
|
|
28
29
|
spec.add_development_dependency 'webmock', '~> 2.1'
|
29
30
|
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: listo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luis Alfredo Lorenzo
|
8
|
+
- Guillermo Siliceo Trueba
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
12
|
+
date: 2021-02-09 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
@@ -72,6 +73,20 @@ dependencies:
|
|
72
73
|
- - ">="
|
73
74
|
- !ruby/object:Gem::Version
|
74
75
|
version: 3.0.3
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: pry
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.9.12
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.9.12
|
75
90
|
- !ruby/object:Gem::Dependency
|
76
91
|
name: webmock
|
77
92
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,6 +152,7 @@ dependencies:
|
|
137
152
|
description: A Ruby implementation for the listo.mx web API.
|
138
153
|
email:
|
139
154
|
- babasbot@gmail.com
|
155
|
+
- guillermo.siliceo@gmail.com
|
140
156
|
executables: []
|
141
157
|
extensions: []
|
142
158
|
extra_rdoc_files: []
|
@@ -160,8 +176,11 @@ files:
|
|
160
176
|
- lib/listo/middleware/raise_error.rb
|
161
177
|
- lib/listo/pkey.rb
|
162
178
|
- lib/listo/version.rb
|
179
|
+
- listo-0.4.0.gem
|
180
|
+
- listo-0.5.0.gem
|
181
|
+
- listo-0.6.0.gem
|
163
182
|
- listo.gemspec
|
164
|
-
homepage: https://github.com/
|
183
|
+
homepage: https://github.com/go-tandem/listo
|
165
184
|
licenses:
|
166
185
|
- Nonstandard
|
167
186
|
metadata: {}
|