vpsa 0.0.25 → 0.0.26
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/lib/vpsa/api/products.rb +17 -0
- data/lib/vpsa/client.rb +5 -1
- data/lib/vpsa/entity/commercial/product.rb +17 -0
- data/lib/vpsa/version.rb +1 -1
- data/spec/vpsa/api/products_spec.rb +31 -0
- data/spec/vpsa/entity/commercial/products_spec.rb +23 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdb0222444b81ce4c13c600d847362cdcc624fac
|
4
|
+
data.tar.gz: 392e2b26998beabb07e4a8f2b5dc2cac3ebb94c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f64b16e2359b667b16362e6660777fca0b6db27b520d4a4f39075b926acc93a06741f1c783e81870090e7533632694a801966bed63e7497a6d44ccc13e8f76b3
|
7
|
+
data.tar.gz: 2c56a03f31e1ef6d8cc11141828075d88f0a9213bcf7ffbde9cd232070c618042f7417fa0a34f90ce56fb99a21654c3423a6934617ca6270f4a77fa0d87a3386
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Vpsa
|
2
|
+
module Api
|
3
|
+
class Products < Client
|
4
|
+
require_all 'vpsa/entity/commercial', 'product'
|
5
|
+
|
6
|
+
base_uri "#{Vpsa::API_ADDRESS}/produtos"
|
7
|
+
|
8
|
+
def save(data)
|
9
|
+
return parse_response(self.class.post("/", :body => build_body(data), :headers => header))
|
10
|
+
end
|
11
|
+
|
12
|
+
def update(id, data)
|
13
|
+
return parse_response(self.class.put("/#{id}", :body => build_body(data), :headers => header))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/vpsa/client.rb
CHANGED
@@ -11,7 +11,7 @@ module Vpsa
|
|
11
11
|
parser Proc.new {|b| JSON.parse(b) rescue b}
|
12
12
|
|
13
13
|
require_all 'vpsa/api', 'third_parties', 'entities', 'default_entries', 'provisions', 'user_data', 'installments', 'credit_limits',
|
14
|
-
'client_classes', 'receipts', 'sales_history', 'orders', 'companies', 'sellers'
|
14
|
+
'client_classes', 'receipts', 'sales_history', 'orders', 'companies', 'sellers', 'products'
|
15
15
|
|
16
16
|
attr_accessor :access_token
|
17
17
|
|
@@ -72,6 +72,10 @@ module Vpsa
|
|
72
72
|
Vpsa::Api::Sellers.new(@access_token)
|
73
73
|
end
|
74
74
|
|
75
|
+
def products
|
76
|
+
Vpsa::Api::Products.new(@access_token)
|
77
|
+
end
|
78
|
+
|
75
79
|
protected
|
76
80
|
def header
|
77
81
|
{"Content-Type" => "application/json", "Accept" => "application/json"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'vpsa/entity/base'
|
2
|
+
|
3
|
+
module Vpsa
|
4
|
+
module Entity
|
5
|
+
module Commercial
|
6
|
+
class Product < Base
|
7
|
+
attr_accessor :descricao, :classificacao, :origem, :fci, :metodoControle, :unidade, :custoReferencial, :codigoNcm
|
8
|
+
attr_accessor :cnpjFornecedores, :especificacao, :codigoBarras, :codigoInterno, :codigoSistema, :estoqueMaximo
|
9
|
+
attr_accessor :estoqueMinimo, :ativo, :descontoMaximo, :comissao, :preco
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# categorias: Lista com os dados das categorias que definem a estrutura mercadológica do produto. Deve ser informada uma categoria para cada nível de categoria cadastrado nível de categoria cadastrado.
|
16
|
+
# nome: Nome da Categoria (string) (obrigatório)
|
17
|
+
# nivel: Nome do Nível onde está localizada a categoria (string) (obrigatório)
|
data/lib/vpsa/version.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Vpsa::Api::Products do
|
4
|
+
let(:header) {{"Content-Type" => "application/json", "Accept" => "application/json"}}
|
5
|
+
let(:product_param) {{}}
|
6
|
+
|
7
|
+
describe "save" do
|
8
|
+
before(:each) do
|
9
|
+
stub_request(:post, "#{Vpsa::API_ADDRESS}/produtos/").to_return(:status => 201)
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should issue a post to the products url" do
|
14
|
+
expect(Vpsa::Api::Products).to receive(:post).with("/", :body => product_param.merge!({:token => "abc"}).to_json, :headers => header).and_call_original
|
15
|
+
|
16
|
+
Vpsa.new("abc").products.save(product_param)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "update" do
|
21
|
+
before(:each) do
|
22
|
+
stub_request(:put, "#{Vpsa::API_ADDRESS}/produtos/1").to_return(:status => 200)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should issue a put to the installments url" do
|
26
|
+
expect(Vpsa::Api::Products).to receive(:put).with("/1", :body => product_param.merge!({:token => "abc"}).to_json, :headers => header).and_call_original
|
27
|
+
|
28
|
+
Vpsa.new("abc").products.update(1, product_param)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Vpsa::Entity::Commercial::Product do
|
4
|
+
describe "as_parameter" do
|
5
|
+
|
6
|
+
let(:product_as_parameter) {{"descricao"=>"descricao", "classificacao"=>"classificacao", "origem"=>"origem", "fci"=>"fci", "metodoControle"=>"ESTOCAVEL",
|
7
|
+
"unidade"=>"UN", "custoReferencial"=>BigDecimal.new("10.35"), "codigoNcm"=>"12", "cnpjFornecedores"=>"cnpjFornecedores", "especificacao"=>"especificacao",
|
8
|
+
"codigoBarras"=>"codigoBarras", "codigoInterno"=>"codigoInterno", "codigoSistema"=>"codigoSistema", "estoqueMaximo"=>BigDecimal.new("10.0"), "estoqueMinimo"=>BigDecimal.new("2.0"),
|
9
|
+
"ativo"=>true, "descontoMaximo"=>BigDecimal.new("1.0"), "comissao"=>BigDecimal.new("2.0"), "preco"=>BigDecimal.new("14.0") }}
|
10
|
+
|
11
|
+
it "should return the product as parameter" do
|
12
|
+
product = Vpsa::Entity::Commercial::Product.new({"descricao"=>"descricao", "classificacao"=>"classificacao", "origem"=>"origem", "fci"=>"fci", "metodoControle"=>"ESTOCAVEL",
|
13
|
+
"unidade"=>"UN", "custoReferencial"=>BigDecimal.new("10.35"), "codigoNcm"=>"12", "cnpjFornecedores"=>"cnpjFornecedores", "especificacao"=>"especificacao",
|
14
|
+
"codigoBarras"=>"codigoBarras", "codigoInterno"=>"codigoInterno", "codigoSistema"=>"codigoSistema", "estoqueMaximo"=>BigDecimal.new("10.0"), "estoqueMinimo"=>BigDecimal.new("2.0"),
|
15
|
+
"ativo"=>true, "descontoMaximo"=>BigDecimal.new("1.0"), "comissao"=>BigDecimal.new("2.0"), "preco"=>BigDecimal.new("14.0") })
|
16
|
+
|
17
|
+
expect(product.as_parameter).to eq(product_as_parameter)
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vpsa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gustavo Berdugo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- lib/vpsa/api/entities.rb
|
61
61
|
- lib/vpsa/api/installments.rb
|
62
62
|
- lib/vpsa/api/orders.rb
|
63
|
+
- lib/vpsa/api/products.rb
|
63
64
|
- lib/vpsa/api/provisions.rb
|
64
65
|
- lib/vpsa/api/receipts.rb
|
65
66
|
- lib/vpsa/api/sales_history.rb
|
@@ -73,6 +74,7 @@ files:
|
|
73
74
|
- lib/vpsa/entity/base.rb
|
74
75
|
- lib/vpsa/entity/commercial/credit_limit.rb
|
75
76
|
- lib/vpsa/entity/commercial/installment.rb
|
77
|
+
- lib/vpsa/entity/commercial/product.rb
|
76
78
|
- lib/vpsa/init_from_hash.rb
|
77
79
|
- lib/vpsa/searcher/administrative/company_searcher.rb
|
78
80
|
- lib/vpsa/searcher/administrative/entity_searcher.rb
|
@@ -93,6 +95,7 @@ files:
|
|
93
95
|
- spec/vpsa/api/entities_spec.rb
|
94
96
|
- spec/vpsa/api/installments_spec.rb
|
95
97
|
- spec/vpsa/api/orders_spec.rb
|
98
|
+
- spec/vpsa/api/products_spec.rb
|
96
99
|
- spec/vpsa/api/provisions_spec.rb
|
97
100
|
- spec/vpsa/api/receipts_spec.rb
|
98
101
|
- spec/vpsa/api/sales_history_spec.rb
|
@@ -105,6 +108,7 @@ files:
|
|
105
108
|
- spec/vpsa/entity/administrative/third_party_spec.rb
|
106
109
|
- spec/vpsa/entity/commercial/credit_limit_spec.rb
|
107
110
|
- spec/vpsa/entity/commercial/installment_spec.rb
|
111
|
+
- spec/vpsa/entity/commercial/products_spec.rb
|
108
112
|
- spec/vpsa_spec.rb
|
109
113
|
- vpsa.gemspec
|
110
114
|
homepage: https://github.com/coyosoftware/vpsa
|
@@ -140,6 +144,7 @@ test_files:
|
|
140
144
|
- spec/vpsa/api/entities_spec.rb
|
141
145
|
- spec/vpsa/api/installments_spec.rb
|
142
146
|
- spec/vpsa/api/orders_spec.rb
|
147
|
+
- spec/vpsa/api/products_spec.rb
|
143
148
|
- spec/vpsa/api/provisions_spec.rb
|
144
149
|
- spec/vpsa/api/receipts_spec.rb
|
145
150
|
- spec/vpsa/api/sales_history_spec.rb
|
@@ -152,4 +157,5 @@ test_files:
|
|
152
157
|
- spec/vpsa/entity/administrative/third_party_spec.rb
|
153
158
|
- spec/vpsa/entity/commercial/credit_limit_spec.rb
|
154
159
|
- spec/vpsa/entity/commercial/installment_spec.rb
|
160
|
+
- spec/vpsa/entity/commercial/products_spec.rb
|
155
161
|
- spec/vpsa_spec.rb
|