myfinance-rails 0.4.5 → 0.4.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e1735e3dd9132665f12c10469b78c2c6133f051
4
- data.tar.gz: 922810fc3721c021937396772c9f94bf8b90e58c
3
+ metadata.gz: 358d3ebb84924f69546c77e26f18fd0d9cc4dcfd
4
+ data.tar.gz: 2f84365f90be4cee592f2e7a3720ffb33d4287d1
5
5
  SHA512:
6
- metadata.gz: 97940e757fb5d3d640ac84ebc250154e03b3f9d5602420dc5e48f1fc18d2bf1229b6b7f6e4e4f07dfcca956f681f1f0a8ace8e3a53333a21dcf6458d300d2ce3
7
- data.tar.gz: 8700f2158948320b3f05660d9198358db8dd6098e0eecccd3aaec428147c976dd4ab44db262db84faa063c9e5441a094e03ca6aff2dfa5e255c3a1eb37531048
6
+ metadata.gz: e8d77829d1e5f3a617bc0419fd92a6c3b829a8e7e469cc9868dd0fb65e055306c03e818faf6d9042c17dab10b4502e06e9ea422c8b5cc2732d0b7dd2f6a70b7a
7
+ data.tar.gz: 6f97183cffe953e9adb361274621e26ab9ea371e03e0f329a97d72a93cb1503dcc4395f83e5aea173a9ab715ee51fd1b1230540df3f3a7a5278bba990ae8fa00
@@ -1,36 +1,19 @@
1
1
  module Myfinance
2
2
 
3
3
  def self.pessoa_id(cnpj_ou_nome)
4
- @everyone ||= all_people
5
- mid = nil
6
- @everyone.each do | pessoa |
7
- if @account_id.to_i == pessoa['account_id']
8
- if pessoa['federation_subscription_number_only_numbers'] == cnpj_ou_nome or pessoa['federation_subscription_number'] == cnpj_ou_nome or pessoa['name'].casecmp(cnpj_ou_nome) == 0
9
- mid = pessoa['id']
10
- break
11
- end
12
- end
13
- end
14
- mid
4
+ person = pessoa(cnpj_ou_nome)
5
+ person.nil? ? nil : person["id"]
15
6
  end
16
7
 
17
- def self.all_people
18
- everyone = []
19
- response = lget "/people.json"
20
- total_pages = get_last_page(response)
21
- for page in 1..total_pages
22
- response = lget "/people.json?page=#{page}"
23
- response.each do | people |
24
- everyone << people['person']
25
- end
26
- end
27
- everyone
8
+ def self.pessoa(cnpj_ou_nome)
9
+ person = pesquisa_pessoa("federation_subscription_number", cnpj_ou_nome)
10
+ person ||= pesquisa_pessoa("name", cnpj_ou_nome)
11
+ person
28
12
  end
29
13
 
30
- def self.pessoa(cnpj_ou_nome)
31
- mid = pessoa_id(cnpj_ou_nome)
32
- response = lget "/people/#{mid}.json"
33
- response['person'] if response
14
+ def self.pesquisa_pessoa(campo, valor)
15
+ people = Myfinance.lget URI.encode("/people.json?search[#{campo}]=#{valor}")
16
+ people.empty? ? nil : people[0]["person"]
34
17
  end
35
18
 
36
19
  def self.cria_pessoa( pessoa )
@@ -46,18 +29,5 @@ module Myfinance
46
29
  @everyone = nil
47
30
  lput "/people/#{people_id}.json", pessoa
48
31
  end
49
-
50
-
51
- def self.get_last_page(response)
52
- total_pages = 1
53
- links = (response.header['link'].split(',') rescue [])
54
- link = links.find{ |l| l.include?('last') }
55
- if link
56
- total_pages = (link.split(";")[0].split('?')[1].gsub('page=','').to_i rescue 1)
57
- end
58
- total_pages
59
- end
60
-
61
-
62
32
  end
63
33
 
@@ -1,3 +1,3 @@
1
1
  module Myfinance
2
- VERSION = '0.4.5'
2
+ VERSION = '0.4.6'
3
3
  end
@@ -37,39 +37,75 @@ describe 'Manipulando Pessoas', type: :feature do
37
37
 
38
38
  end
39
39
 
40
- it 'Se procurar por um cnpj não cadastrado, deve voltar nulo' do
41
- Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
42
- id = Myfinance.pessoa_id('67977504999999')
43
- expect(id).to be_nil
44
- end
40
+ describe "#pessoa_id" do
41
+ it 'Se procurar por um cnpj não cadastrado, deve voltar nulo' do
42
+ Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
43
+ id = Myfinance.pessoa_id('67977504999999')
44
+ expect(id).to be_nil
45
+ end
45
46
 
46
- it 'Se procurar por um cnpj cadastrado, deve voltar id' do
47
- Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
48
- id = Myfinance.pessoa_id('27206831000170')
49
- expect(id).to_not be_nil
50
- end
47
+ it 'Se procurar por um cnpj cadastrado, deve voltar id' do
48
+ Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
49
+ id = Myfinance.pessoa_id('27206831000170')
50
+ expect(id).to_not be_nil
51
+ end
51
52
 
52
- it 'Se procurar por nome cadastrado, deve voltar id' do
53
- Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
54
- id = Myfinance.pessoa_id('Ciclano')
55
- expect(id).to_not be_nil
56
- end
53
+ it 'Se procurar por nome cadastrado, deve voltar id' do
54
+ Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
55
+ id = Myfinance.pessoa_id('Ciclano')
56
+ expect(id).to_not be_nil
57
+ end
57
58
 
58
- it 'Se procurar por nome cadastrado, mas em case diferente, deve voltar id' do
59
- Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
60
- id = Myfinance.pessoa_id('CiClAnO')
61
- expect(id).to_not be_nil
59
+ it 'Se procurar por nome cadastrado, mas em case diferente, deve voltar id' do
60
+ Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
61
+ id = Myfinance.pessoa_id('CiClAnO')
62
+ expect(id).to_not be_nil
63
+ end
64
+
65
+ it 'Se procurar por nome não cadastrado, deve voltar id nulo' do
66
+ Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
67
+ id = Myfinance.pessoa_id('Ciclano Ciclano')
68
+ expect(id).to be_nil
69
+ end
62
70
  end
63
71
 
64
- it 'Se procurar por nome não cadastrado, deve voltar id nulo' do
65
- Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
66
- id = Myfinance.pessoa_id('Ciclano Ciclano')
67
- expect(id).to be_nil
72
+ describe "#pessoa" do
73
+ let!(:person_double) { double("person") }
74
+ it "Retorna pessoa quando encontra cnpj" do
75
+ expect(Myfinance).to receive(:pesquisa_pessoa).with("federation_subscription_number", "67977504000137").and_return person_double
76
+ expect(Myfinance.pessoa("67977504000137")).to eql person_double
77
+ end
78
+ it "Retorna pessoa quando encontra nome" do
79
+ expect(Myfinance).to receive(:pesquisa_pessoa).with("federation_subscription_number", "nome").and_return nil
80
+ expect(Myfinance).to receive(:pesquisa_pessoa).with("name", "nome").and_return person_double
81
+ expect(Myfinance.pessoa("nome")).to eql person_double
82
+ end
83
+ it "Retorna nil quando não encontra pessoa" do
84
+ expect(Myfinance).to receive(:pesquisa_pessoa).with("federation_subscription_number", "nome").and_return nil
85
+ expect(Myfinance).to receive(:pesquisa_pessoa).with("name", "nome").and_return nil
86
+ expect(Myfinance.pessoa("nome")).to be_nil
87
+ end
68
88
  end
69
89
 
70
- it 'Se procurar por um cnpj cadastrado de outra conta, não deve voltar id' do
71
- Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277', false, 1)
72
- id = Myfinance.pessoa_id('27206831000170')
73
- expect(id).to be_nil
90
+ describe "#pesquisa_pessoa" do
91
+ before do
92
+ Myfinance.setup('2acecbb483842ebbfb2c638070bf019b70e757190166d277')
93
+ end
94
+ it "retorna pessoal quando encontra cnpj com pontuação" do
95
+ pessoa = Myfinance.pesquisa_pessoa("federation_subscription_number", "67.977.504/0001-37")
96
+ expect(pessoa["id"]).to eql 192058
97
+ end
98
+ it "retorna pessoal quando encontra cnpj sem pontuação" do
99
+ pessoa = Myfinance.pesquisa_pessoa("federation_subscription_number", "67977504000137")
100
+ expect(pessoa["id"]).to eql 192058
101
+ end
102
+ it "retorna pessoal quando encontra nome" do
103
+ pessoa = Myfinance.pesquisa_pessoa("name", "AGROPECUARIA POTENZA LTDA.")
104
+ expect(pessoa["id"]).to eql 192058
105
+ end
106
+ it "retorna nil quando não encontra cnpj" do
107
+ pessoa = Myfinance.pesquisa_pessoa("name", "AGROPECUARIA POTENZA")
108
+ expect(pessoa).to be_nil
109
+ end
74
110
  end
75
111
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myfinance-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Lopes Neto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-24 00:00:00.000000000 Z
11
+ date: 2016-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler