omie-client 0.1.4 → 0.1.8
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 +9 -0
- data/Gemfile.lock +2 -2
- data/README.md +14 -4
- data/lib/omie.rb +1 -0
- data/lib/omie/base_resource.rb +10 -1
- data/lib/omie/company.rb +14 -8
- data/lib/omie/product.rb +19 -7
- data/lib/omie/tax_recommendation.rb +18 -0
- data/lib/omie/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3363ec39f3eb50f1ce8f1555502c67837b6e9c89cb98ed44818fb1c4f29ffc15
|
4
|
+
data.tar.gz: 3e19a18a10d814e80e274700b3d584c114dad57196daad8a37382ea5fec58021
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93d808cb45297237c3cf39e461d462f32e96afdcb881f1ba0e70caaa9cb55d67202e95e9c52c5c5d1316240fa3e3bca6cd6c3631f4928cad5c2f6aa7fc89be8c
|
7
|
+
data.tar.gz: 631ffe7c3e8f89fa7d9e0c56268824301b70e9f3d44470ce91e01ac273cc11e37b1e05bf291fd1824d7fe60e675b568e53f4f39dcc8c77e3ff87f31787706a26
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
omie-client (0.1.
|
4
|
+
omie-client (0.1.7)
|
5
5
|
activesupport (>= 5.0)
|
6
6
|
rest-client (>= 2.0)
|
7
7
|
|
@@ -70,7 +70,7 @@ GEM
|
|
70
70
|
thread_safe (~> 0.1)
|
71
71
|
unf (0.1.4)
|
72
72
|
unf_ext
|
73
|
-
unf_ext (0.0.7.
|
73
|
+
unf_ext (0.0.7.7)
|
74
74
|
unicode-display_width (1.6.1)
|
75
75
|
|
76
76
|
PLATFORMS
|
data/README.md
CHANGED
@@ -104,7 +104,7 @@ from the API, please open an issue first to avoid duplicated work.
|
|
104
104
|
To properly test if the gem is working properly, you can install it locally:
|
105
105
|
```sh
|
106
106
|
gem build omie-client.gemspec
|
107
|
-
gem install ./omie-client
|
107
|
+
gem install ./omie-client-x.y.z.gem
|
108
108
|
```
|
109
109
|
The `x.y.z` represents the version described in [lib/omie/version.rb](lib/omie/version.rb)
|
110
110
|
|
@@ -117,10 +117,10 @@ irb
|
|
117
117
|
```
|
118
118
|
|
119
119
|
```ruby
|
120
|
-
require 'omie
|
120
|
+
require 'omie'
|
121
121
|
=> true
|
122
|
-
Omie
|
123
|
-
=> x.y.z
|
122
|
+
Omie::VERSION
|
123
|
+
=> "x.y.z"
|
124
124
|
# Default credentials provided by Omie API for tests
|
125
125
|
Omie.app_key = '1560731700'
|
126
126
|
Omie.app_secret = '226dcf372489bb45ceede61bfd98f0f1'
|
@@ -129,6 +129,16 @@ Omie::Company.list
|
|
129
129
|
Omie::Product.list
|
130
130
|
```
|
131
131
|
|
132
|
+
If everything is working fine and you have the proper credentials to upload
|
133
|
+
the new version, run:
|
134
|
+
|
135
|
+
```sh
|
136
|
+
gem push omie-client-x.y.z.gem
|
137
|
+
Pushing gem to RubyGems.org...
|
138
|
+
Successfully registered gem: omie-client (x.y.z)
|
139
|
+
```
|
140
|
+
> You may need to authenticate at rubygems first => https://guides.rubygems.org/make-your-own-gem/
|
141
|
+
|
132
142
|
## License
|
133
143
|
|
134
144
|
See the [LICENSE](LICENSE) file.
|
data/lib/omie.rb
CHANGED
data/lib/omie/base_resource.rb
CHANGED
@@ -11,7 +11,15 @@ module Omie
|
|
11
11
|
# values
|
12
12
|
def initialize(args = {})
|
13
13
|
args.each do |key, value|
|
14
|
-
|
14
|
+
key_s = key.to_sym
|
15
|
+
has_internal_const = self.class.const_defined?('INTERNAL_MODELS')
|
16
|
+
if has_internal_const && self.class::INTERNAL_MODELS.key?(key_s)
|
17
|
+
klass = self.class::INTERNAL_MODELS[key_s]
|
18
|
+
instance = klass.new(value)
|
19
|
+
send("#{key}=", instance)
|
20
|
+
elsif respond_to?(key_s)
|
21
|
+
send("#{key}=", value)
|
22
|
+
end
|
15
23
|
end
|
16
24
|
end
|
17
25
|
|
@@ -28,6 +36,7 @@ module Omie
|
|
28
36
|
|
29
37
|
def self.request_and_initialize(uri, call, params)
|
30
38
|
response = request(uri, call, params)
|
39
|
+
|
31
40
|
new(response)
|
32
41
|
end
|
33
42
|
end
|
data/lib/omie/company.rb
CHANGED
@@ -28,7 +28,7 @@ module Omie
|
|
28
28
|
attr_accessor :email, :cnpj_cpf, :razao_social, :contato, :nome_fantasia
|
29
29
|
attr_accessor :codigo_cliente_integracao, :codigo_cliente_omie, :endereco
|
30
30
|
attr_accessor :cidade, :complemento, :estado, :endereco_numero, :cep
|
31
|
-
attr_accessor :codigo_pais, :bairro, :inscricao_estadual
|
31
|
+
attr_accessor :codigo_pais, :bairro, :inscricao_estadual, :inativa
|
32
32
|
|
33
33
|
# Record a new company using the
|
34
34
|
# {https://app.omie.com.br/api/v1/geral/clientes/#IncluirCliente
|
@@ -93,16 +93,22 @@ module Omie
|
|
93
93
|
# records.
|
94
94
|
#
|
95
95
|
# @!scope class
|
96
|
-
# @param
|
97
|
-
# the
|
98
|
-
#
|
99
|
-
# the number of items per page (max: 50).
|
96
|
+
# @param [Hash] options
|
97
|
+
# The options param follows the same structure described by
|
98
|
+
# https://app.omie.com.br/api/v1/geral/clientes/#clientes_list_request
|
100
99
|
# @return [Array<Omie::Company>]
|
101
100
|
# the list of found companies
|
102
|
-
def self.list(
|
103
|
-
|
101
|
+
def self.list(options = {})
|
102
|
+
default = {
|
103
|
+
pagina: 1, registros_por_pagina: 50,
|
104
|
+
apenas_importado_api: 'N'
|
105
|
+
}
|
106
|
+
|
107
|
+
default.each do |k, v|
|
108
|
+
options[k] = v unless options.key?(k)
|
109
|
+
end
|
104
110
|
|
105
|
-
response = request(URI, CALLS[:list],
|
111
|
+
response = request(URI, CALLS[:list], options)
|
106
112
|
response['clientes_cadastro'].map { |client| Omie::Company.new(client) }
|
107
113
|
rescue Omie::RequestError
|
108
114
|
[]
|
data/lib/omie/product.rb
CHANGED
@@ -20,10 +20,16 @@ module Omie
|
|
20
20
|
associate: 'AssociarCodIntProduto'
|
21
21
|
}.freeze
|
22
22
|
|
23
|
+
INTERNAL_MODELS = {
|
24
|
+
recomendacoes_fiscais: Omie::TaxRecommendation
|
25
|
+
}.freeze
|
26
|
+
|
23
27
|
URI = '/v1/geral/produtos/'
|
24
28
|
|
25
29
|
attr_accessor :ncm, :valor_unitario, :unidade, :descricao_status
|
26
30
|
attr_accessor :codigo_produto_integracao, :codigo_produto, :descricao
|
31
|
+
attr_accessor :codigo, :tipoItem # They do not keep the same name style =(
|
32
|
+
attr_accessor :recomendacoes_fiscais # {Omie::TaxRecommendation}
|
27
33
|
|
28
34
|
# Record a new product using the
|
29
35
|
# {https://app.omie.com.br/api/v1/geral/produtos/#IncluirProduto
|
@@ -88,16 +94,22 @@ module Omie
|
|
88
94
|
# records.
|
89
95
|
#
|
90
96
|
# @!scope class
|
91
|
-
# @param
|
92
|
-
# the
|
93
|
-
#
|
94
|
-
# the number of items per page (max: 50).
|
97
|
+
# @param [Hash] options
|
98
|
+
# The options param follows the same structure described by
|
99
|
+
# https://app.omie.com.br/api/v1/geral/produtos/#produto_servico_list_request
|
95
100
|
# @return [Array<Omie::Product>]
|
96
101
|
# the list of found companies
|
97
|
-
def self.list(
|
98
|
-
|
102
|
+
def self.list(options = {})
|
103
|
+
default = {
|
104
|
+
pagina: 1, registros_por_pagina: 50,
|
105
|
+
apenas_importado_api: 'N', filtrar_apenas_omiepdv: 'N'
|
106
|
+
}
|
107
|
+
|
108
|
+
default.each do |k, v|
|
109
|
+
options[k] = v unless options.key?(k)
|
110
|
+
end
|
99
111
|
|
100
|
-
response = request(URI, CALLS[:list],
|
112
|
+
response = request(URI, CALLS[:list], options)
|
101
113
|
response['produto_servico_cadastro'].map do |product|
|
102
114
|
Omie::Product.new(product)
|
103
115
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Omie
|
4
|
+
# This class abstracts tax recommendations related to the Product resource
|
5
|
+
# from Omie (Ref: Produto). It works as an embedded object inside Product
|
6
|
+
# payload. Take a look at this link for more details:
|
7
|
+
# {https://app.omie.com.br/api/v1/geral/produtos/}.
|
8
|
+
#
|
9
|
+
# Different from traditional resources that inherit from {Omie::BaseResource},
|
10
|
+
# internal objects does nothing but declares attributes that will comprise
|
11
|
+
# a higher level resource's payload. They usually does not have specific
|
12
|
+
# endpoints.
|
13
|
+
class TaxRecommendation < Omie::BaseResource
|
14
|
+
attr_accessor :origem_mercadoria, :id_preco_tabelado, :id_cest,
|
15
|
+
:cupom_fiscal, :market_place, :indicador_escala,
|
16
|
+
:cnpj_fabricante
|
17
|
+
end
|
18
|
+
end
|
data/lib/omie/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omie-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peerdustry
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -147,6 +147,7 @@ files:
|
|
147
147
|
- lib/omie/error.rb
|
148
148
|
- lib/omie/info.rb
|
149
149
|
- lib/omie/product.rb
|
150
|
+
- lib/omie/tax_recommendation.rb
|
150
151
|
- lib/omie/version.rb
|
151
152
|
- omie-client.gemspec
|
152
153
|
homepage: https://gitlab.com/peerdustry/floss/omie-client
|