myfinance-rails 0.0.9 → 0.0.10

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: 24a04660d50cdcf7ad0e80f3e9b8ea2350717198
4
- data.tar.gz: c989c003e4481b4011dc162551188cf436deffb6
3
+ metadata.gz: 06b34f9d4993d5ee387e8957314d8a829a492bb1
4
+ data.tar.gz: 58f1941cbf736d5be8cc2002c55a2f2e3559c3c2
5
5
  SHA512:
6
- metadata.gz: 940bcb22e2e83d4978a982f70ba72f42a058dd21a2976462966f900de14544ba645299e5378ed62a72117007f552060dbec53e335146ce05541e725898a6618f
7
- data.tar.gz: fbaa9bd7214608bb9c133bce43c03b1252289ca8e167d5dd70d7f355496be6e02beed2c864dee57d421c9152fe1c2c2536194fddd18845ece68bdae661ee380d
6
+ metadata.gz: ca93a2bd23a86ae0b613d9c896fb03beb66ed0c222f9634b0c334c72ff2f4c49f87e571f9b33c0384bcd4fd9b910dc35168dddaf64dc91c903ff36663e65274e
7
+ data.tar.gz: 132c89675b297bde0d6860984385bb6042e49d7ba6e837d5e26bad5001c55d703e923694ece0f5739dc4c3d83a78b07fa7c8e9dec6e244a0065c11bfff6f5139
data/.gitignore CHANGED
@@ -23,3 +23,4 @@ mkmf.log
23
23
  .idea
24
24
  .ruby-gemset
25
25
  .ruby-version
26
+ .rvmrc
@@ -0,0 +1,7 @@
1
+ module Myfinance
2
+
3
+ def self.accounts
4
+ lget '/accounts.json'
5
+ end
6
+ end
7
+
@@ -1,3 +1,3 @@
1
1
  module Myfinance
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
data/lib/myfinance.rb CHANGED
@@ -6,15 +6,16 @@ require 'myfinance/conta_a_receber'
6
6
  require 'myfinance/imposto'
7
7
  require 'myfinance/categoria'
8
8
  require 'myfinance/centro_receita_custo'
9
+ require 'myfinance/account'
9
10
  require 'json'
10
11
 
11
12
  module Myfinance
12
13
 
13
14
  include HTTParty
14
15
 
15
- attr_accessor :token, :endpoint
16
+ attr_accessor :token, :endpoint, :account_id
16
17
 
17
- def self.setup(token,production=false)
18
+ def self.setup(token, production=false, account_id=nil)
18
19
  if production
19
20
  @endpoint = 'https://app.myfinance.com.br'
20
21
  else
@@ -22,8 +23,9 @@ module Myfinance
22
23
  end
23
24
  base_uri @endpoint
24
25
  @token = token
26
+ @account_id = account_id
25
27
  # testo com uma chamada simples
26
- response = lget('/entities.json')
28
+ response = accounts
27
29
  # Resposta deve ser um array de hashes
28
30
  unless response.code == 200
29
31
  raise "Erro ao inicializar a API do MyFinance: #{response.code} : #{response.parsed_response}"
@@ -35,7 +37,9 @@ module Myfinance
35
37
  def self.lget(url)
36
38
  options = {
37
39
  :basic_auth => {:username => @token, :password => 'x'},
40
+ :headers => { 'Content-Type' => 'application/json' }
38
41
  }
42
+ add_account_id options
39
43
  get url, options
40
44
  end
41
45
 
@@ -45,6 +49,7 @@ module Myfinance
45
49
  :body => post_data.to_json,
46
50
  :headers => { 'Content-Type' => 'application/json' }
47
51
  }
52
+ add_account_id options
48
53
  response = post url, options
49
54
  response
50
55
  end
@@ -55,6 +60,7 @@ module Myfinance
55
60
  :body => post_data.to_json,
56
61
  :headers => { 'Content-Type' => 'application/json' }
57
62
  }
63
+ add_account_id options
58
64
  response = put url, options
59
65
  response
60
66
  end
@@ -63,5 +69,8 @@ module Myfinance
63
69
  dt.strftime('%FT%H:%MZ') rescue nil
64
70
  end
65
71
 
72
+ def self.add_account_id(options)
73
+ options[:headers]['ACCOUNT_ID'] = @account_id.to_s if @account_id
74
+ end
66
75
  end
67
76
 
@@ -0,0 +1,50 @@
1
+ describe 'Account', type: :feature do
2
+
3
+ require 'myfinance'
4
+
5
+ it '#accounts' do
6
+ double accounts_double = double('account')
7
+ expect(Myfinance).to receive(:lget).once.with('/accounts.json').and_return accounts_double
8
+ expect(Myfinance.accounts).to eql(accounts_double)
9
+ end
10
+
11
+ describe "specific account" do
12
+ let(:response_double) { double("response", code: 200) }
13
+ describe "informed" do
14
+ before do
15
+ expect(Myfinance).to receive(:accounts).and_return response_double
16
+ Myfinance.setup "123456", false, 25
17
+ end
18
+ it "get" do
19
+ expect(Myfinance).to receive(:get).with("/entities.json", {:basic_auth=>{:username=>"123456", :password=>"x"}, :headers=>{"Content-Type"=>"application/json", "ACCOUNT_ID"=>"25"}})
20
+ Myfinance.entidades
21
+ end
22
+ it "post" do
23
+ expect(Myfinance).to receive(:post).with("/people.json", {:basic_auth=>{:username=>"123456", :password=>"x"}, :body=>"{\"person\":{}}", :headers=>{"Content-Type"=>"application/json", "ACCOUNT_ID"=>"25"}})
24
+ Myfinance.cria_pessoa({})
25
+ end
26
+ it "put" do
27
+ expect(Myfinance).to receive(:put).with("/people/30.json", {:basic_auth=>{:username=>"123456", :password=>"x"}, :body=>"{}", :headers=>{"Content-Type"=>"application/json", "ACCOUNT_ID"=>"25"}})
28
+ Myfinance.atualiza_pessoa(30, {})
29
+ end
30
+ end
31
+ describe "not informed" do
32
+ before do
33
+ expect(Myfinance).to receive(:accounts).and_return response_double
34
+ Myfinance.setup "123456", false
35
+ end
36
+ it "get" do
37
+ expect(Myfinance).to receive(:get).with("/entities.json", {:basic_auth=>{:username=>"123456", :password=>"x"}, :headers=>{"Content-Type"=>"application/json"}})
38
+ Myfinance.entidades
39
+ end
40
+ it "post" do
41
+ expect(Myfinance).to receive(:post).with("/people.json", {:basic_auth=>{:username=>"123456", :password=>"x"}, :body=>"{\"person\":{}}", :headers=>{"Content-Type"=>"application/json"}})
42
+ Myfinance.cria_pessoa({})
43
+ end
44
+ it "put" do
45
+ expect(Myfinance).to receive(:put).with("/people/30.json", {:basic_auth=>{:username=>"123456", :password=>"x"}, :body=>"{}", :headers=>{"Content-Type"=>"application/json"}})
46
+ Myfinance.atualiza_pessoa(30, {})
47
+ end
48
+ end
49
+ end
50
+ 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.0.9
4
+ version: 0.0.10
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: 2015-01-07 00:00:00.000000000 Z
11
+ date: 2015-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -81,6 +81,7 @@ files:
81
81
  - README.md
82
82
  - Rakefile
83
83
  - lib/myfinance.rb
84
+ - lib/myfinance/account.rb
84
85
  - lib/myfinance/categoria.rb
85
86
  - lib/myfinance/centro_receita_custo.rb
86
87
  - lib/myfinance/conta_a_pagar.rb
@@ -90,6 +91,7 @@ files:
90
91
  - lib/myfinance/pessoa.rb
91
92
  - lib/myfinance/version.rb
92
93
  - myfinance-rails.gemspec
94
+ - spec/features/account_spec.rb
93
95
  - spec/features/categoria_spec.rb
94
96
  - spec/features/centro_receita_custo_spec.rb
95
97
  - spec/features/contas_a_receber_spec.rb
@@ -122,6 +124,7 @@ signing_key:
122
124
  specification_version: 4
123
125
  summary: GEM para facilitar a uso da API do Myfinance em Aplicativos Rails
124
126
  test_files:
127
+ - spec/features/account_spec.rb
125
128
  - spec/features/categoria_spec.rb
126
129
  - spec/features/centro_receita_custo_spec.rb
127
130
  - spec/features/contas_a_receber_spec.rb