myfinance 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -1
- data/Gemfile.lock +23 -21
- data/README.md +79 -1
- data/lib/myfinance.rb +3 -0
- data/lib/myfinance/client.rb +4 -0
- data/lib/myfinance/entities/collection.rb +1 -1
- data/lib/myfinance/entities/deposit_account.rb +1 -1
- data/lib/myfinance/entities/financial_transaction.rb +41 -0
- data/lib/myfinance/entities/financial_transaction_collection.rb +14 -0
- data/lib/myfinance/request.rb +1 -1
- data/lib/myfinance/resources/financial_account.rb +1 -1
- data/lib/myfinance/resources/financial_transaction.rb +109 -0
- data/lib/myfinance/version.rb +1 -1
- data/spec/lib/myfinance/client_spec.rb +10 -0
- data/spec/lib/myfinance/entities/financial_transaction_collection_spec.rb +23 -0
- data/spec/lib/myfinance/entities/financial_transaction_spec.rb +12 -0
- data/spec/lib/myfinance/resources/financial_transaction_spec.rb +130 -0
- data/spec/support/client.rb +1 -1
- metadata +10 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cc4a1064aa43f5ea804054f28615cca76b55736
|
4
|
+
data.tar.gz: 6c1865d21fb91219abcfd059ad6e7f90dccdc3d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2697a1a00cb82c86a0c0f0a1737e4179eb05b10ffd42740a2e70aa0c3d23c2e734593d881e76baf6506d96a3e4429b1e723a1f1b9cf48b972191e871b35a5c0c
|
7
|
+
data.tar.gz: c4ed5d1bf31c386dca979788f458aa4e4e86ec4f46dffb959c601767ffc94bb914347125f37c11555c8aa7cb89445559f433f12fb1fb69fdf8705894a49576c7
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -716,7 +716,7 @@ Style/LineEndConcatenation:
|
|
716
716
|
line end.
|
717
717
|
Enabled: false
|
718
718
|
|
719
|
-
Style/
|
719
|
+
Style/MethodCallWithoutArgsParentheses:
|
720
720
|
Description: 'Do not use parentheses for method calls with no arguments.'
|
721
721
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
|
722
722
|
Enabled: false
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
myfinance (0.
|
4
|
+
myfinance (0.7.0)
|
5
5
|
mime-types (~> 2.99)
|
6
6
|
multi_json (~> 1.11)
|
7
7
|
typhoeus (~> 0.8)
|
@@ -10,13 +10,14 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
addressable (2.
|
14
|
-
|
13
|
+
addressable (2.5.0)
|
14
|
+
public_suffix (~> 2.0, >= 2.0.2)
|
15
|
+
awesome_print (1.7.0)
|
15
16
|
axiom-types (0.1.1)
|
16
17
|
descendants_tracker (~> 0.0.4)
|
17
18
|
ice_nine (~> 0.11.0)
|
18
19
|
thread_safe (~> 0.3, >= 0.3.1)
|
19
|
-
codeclimate-test-reporter (0.
|
20
|
+
codeclimate-test-reporter (0.6.0)
|
20
21
|
simplecov (>= 0.7.1, < 1.0.0)
|
21
22
|
coderay (1.1.1)
|
22
23
|
coercible (1.0.0)
|
@@ -25,41 +26,42 @@ GEM
|
|
25
26
|
safe_yaml (~> 1.0.0)
|
26
27
|
descendants_tracker (0.0.4)
|
27
28
|
thread_safe (~> 0.3, >= 0.3.1)
|
28
|
-
diff-lcs (1.
|
29
|
+
diff-lcs (1.3)
|
29
30
|
docile (1.1.5)
|
30
31
|
equalizer (0.0.11)
|
31
32
|
ethon (0.10.1)
|
32
33
|
ffi (>= 1.3.0)
|
33
34
|
ffi (1.9.18)
|
34
35
|
ice_nine (0.11.2)
|
35
|
-
json (
|
36
|
+
json (2.0.3)
|
36
37
|
method_source (0.8.2)
|
37
38
|
mime-types (2.99.3)
|
38
39
|
multi_json (1.12.1)
|
39
|
-
pry (0.10.
|
40
|
+
pry (0.10.4)
|
40
41
|
coderay (~> 1.1.0)
|
41
42
|
method_source (~> 0.8.1)
|
42
43
|
slop (~> 3.4)
|
43
44
|
pry-nav (0.2.4)
|
44
45
|
pry (>= 0.9.10, < 0.11.0)
|
46
|
+
public_suffix (2.0.5)
|
45
47
|
rake (10.5.0)
|
46
|
-
rspec (3.
|
47
|
-
rspec-core (~> 3.
|
48
|
-
rspec-expectations (~> 3.
|
49
|
-
rspec-mocks (~> 3.
|
50
|
-
rspec-core (3.4
|
51
|
-
rspec-support (~> 3.
|
52
|
-
rspec-expectations (3.
|
48
|
+
rspec (3.5.0)
|
49
|
+
rspec-core (~> 3.5.0)
|
50
|
+
rspec-expectations (~> 3.5.0)
|
51
|
+
rspec-mocks (~> 3.5.0)
|
52
|
+
rspec-core (3.5.4)
|
53
|
+
rspec-support (~> 3.5.0)
|
54
|
+
rspec-expectations (3.5.0)
|
53
55
|
diff-lcs (>= 1.2.0, < 2.0)
|
54
|
-
rspec-support (~> 3.
|
55
|
-
rspec-mocks (3.
|
56
|
+
rspec-support (~> 3.5.0)
|
57
|
+
rspec-mocks (3.5.0)
|
56
58
|
diff-lcs (>= 1.2.0, < 2.0)
|
57
|
-
rspec-support (~> 3.
|
58
|
-
rspec-support (3.
|
59
|
+
rspec-support (~> 3.5.0)
|
60
|
+
rspec-support (3.5.0)
|
59
61
|
safe_yaml (1.0.4)
|
60
|
-
simplecov (0.
|
62
|
+
simplecov (0.13.0)
|
61
63
|
docile (~> 1.1.0)
|
62
|
-
json (
|
64
|
+
json (>= 1.8, < 3)
|
63
65
|
simplecov-html (~> 0.10.0)
|
64
66
|
simplecov-html (0.10.0)
|
65
67
|
slop (3.6.0)
|
@@ -93,4 +95,4 @@ DEPENDENCIES
|
|
93
95
|
webmock (~> 1.9.3)
|
94
96
|
|
95
97
|
BUNDLED WITH
|
96
|
-
1.
|
98
|
+
1.14.6
|
data/README.md
CHANGED
@@ -33,9 +33,10 @@ Or install it yourself as:
|
|
33
33
|
client = Myfinance.client("YOUR_TOKEN_HERE")
|
34
34
|
```
|
35
35
|
|
36
|
-
##### Now you have access to
|
36
|
+
##### Now you have access to these API endpoints:
|
37
37
|
|
38
38
|
* [Entities API](https://app.myfinance.com.br/docs/api/entities) as `client.entities`
|
39
|
+
* [FinancialTransactions API](https://app.myfinance.com.br/docs/api/financial_transactions) as `client.financial_transactions`
|
39
40
|
* [PayableAccounts API](https://app.myfinance.com.br/docs/api/payable_accounts) as `client.payable_accounts`
|
40
41
|
* [ReceivableAccounts API](https://app.myfinance.com.br/docs/api/receivable_accounts) as `client.receivable_accounts`
|
41
42
|
* [Attachments API](https://app.myfinance.com.br/docs/api/attachments) as `client.attachments`
|
@@ -81,6 +82,83 @@ client = Myfinance.client("YOUR_TOKEN_HERE")
|
|
81
82
|
</tr>
|
82
83
|
</table>
|
83
84
|
|
85
|
+
#### [FinancialTransactions](https://app.myfinance.com.br/docs/api/financial_transactions)
|
86
|
+
|
87
|
+
<table>
|
88
|
+
<tr>
|
89
|
+
<th>HTTP method</th>
|
90
|
+
<th>Endpoint</th>
|
91
|
+
<th>Client method</th>
|
92
|
+
</tr>
|
93
|
+
<tr>
|
94
|
+
<td><code>GET</code></td>
|
95
|
+
<td>
|
96
|
+
<a href="https://app.myfinance.com.br/docs/api/financial_transactions#get_index" target="_blank">
|
97
|
+
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions
|
98
|
+
</a>
|
99
|
+
</td>
|
100
|
+
<td>
|
101
|
+
<code>client.financial_transactions.find_all</code>
|
102
|
+
</td>
|
103
|
+
</tr>
|
104
|
+
<tr>
|
105
|
+
<td><code>GET</code></td>
|
106
|
+
<td>
|
107
|
+
<a href="https://app.myfinance.com.br/docs/api/financial_transactions#get_show" target="_blank">
|
108
|
+
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id
|
109
|
+
</a>
|
110
|
+
</td>
|
111
|
+
<td>
|
112
|
+
<code>client.financial_transactions.find</code>
|
113
|
+
</td>
|
114
|
+
</tr>
|
115
|
+
<tr>
|
116
|
+
<td><code>POST</code></td>
|
117
|
+
<td>
|
118
|
+
<a href="https://app.myfinance.com.br/docs/api/financial_transactions#post_create" target="_blank">
|
119
|
+
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions
|
120
|
+
</a>
|
121
|
+
</td>
|
122
|
+
<td>
|
123
|
+
<code>client.financial_transactions.create</code>
|
124
|
+
</td>
|
125
|
+
</tr>
|
126
|
+
<tr>
|
127
|
+
<td><code>PUT</code></td>
|
128
|
+
<td>
|
129
|
+
<a href="https://app.myfinance.com.br/docs/api/financial_transactions#put_update" target="_blank">
|
130
|
+
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id
|
131
|
+
</a>
|
132
|
+
</td>
|
133
|
+
<td>
|
134
|
+
<code>client.financial_transactions.update</code>
|
135
|
+
</td>
|
136
|
+
</tr>
|
137
|
+
<tr>
|
138
|
+
<td><code>DELETE</code></td>
|
139
|
+
<td>
|
140
|
+
<a href="https://app.myfinance.com.br/docs/api/financial_transactions#delete_destroy" target="_blank">
|
141
|
+
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id
|
142
|
+
</a>
|
143
|
+
</td>
|
144
|
+
<td>
|
145
|
+
<code>client.financial_transactions.destroy</code>
|
146
|
+
</td>
|
147
|
+
</tr>
|
148
|
+
<tr>
|
149
|
+
<td><code>DELETE</code></td>
|
150
|
+
<td>
|
151
|
+
<a href="https://app.myfinance.com.br/docs/api/financial_transactions#delete_destroy_many" target="_blank">
|
152
|
+
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/destroy_many?selected_ids=:id1,id2,id3
|
153
|
+
</a>
|
154
|
+
</td>
|
155
|
+
<td>
|
156
|
+
<code>client.financial_transactions.destroy_many</code>
|
157
|
+
</td>
|
158
|
+
</tr>
|
159
|
+
</table>
|
160
|
+
|
161
|
+
|
84
162
|
#### [PayableAccounts](https://app.myfinance.com.br/docs/api/payable_accounts)
|
85
163
|
|
86
164
|
<table>
|
data/lib/myfinance.rb
CHANGED
@@ -12,6 +12,8 @@ require "myfinance/entities/collection"
|
|
12
12
|
require "myfinance/entities/entity"
|
13
13
|
require "myfinance/entities/entity_collection"
|
14
14
|
require "myfinance/entities/attachment_collection"
|
15
|
+
require "myfinance/entities/financial_transaction"
|
16
|
+
require "myfinance/entities/financial_transaction_collection"
|
15
17
|
require "myfinance/entities/financial_account"
|
16
18
|
require "myfinance/entities/payable_account"
|
17
19
|
require "myfinance/entities/receivable_account"
|
@@ -33,6 +35,7 @@ require "myfinance/entities/tax_collection"
|
|
33
35
|
|
34
36
|
require "myfinance/resources/base"
|
35
37
|
require "myfinance/resources/entity"
|
38
|
+
require "myfinance/resources/financial_transaction"
|
36
39
|
require "myfinance/resources/financial_account"
|
37
40
|
require "myfinance/resources/payable_account"
|
38
41
|
require "myfinance/resources/receivable_account"
|
data/lib/myfinance/client.rb
CHANGED
@@ -11,7 +11,7 @@ module Myfinance
|
|
11
11
|
attribute :force_destroy, Boolean
|
12
12
|
attribute :id, Integer
|
13
13
|
attribute :imported_from_sync, Boolean
|
14
|
-
attribute :initial_balance,
|
14
|
+
attribute :initial_balance, Decimal
|
15
15
|
attribute :last_transaction_date, Date
|
16
16
|
attribute :name, String
|
17
17
|
attribute :sync_response, String
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Myfinance
|
2
|
+
module Entities
|
3
|
+
class FinancialTransaction < Base
|
4
|
+
attribute :classification_center_id, Integer
|
5
|
+
attribute :deposit_account_id, Integer
|
6
|
+
attribute :person_id, Integer
|
7
|
+
attribute :parent_id, Integer
|
8
|
+
attribute :owner_id, Integer
|
9
|
+
attribute :currency_id, Integer
|
10
|
+
attribute :category_id, Integer
|
11
|
+
attribute :type, String
|
12
|
+
attribute :occurred_at, Date
|
13
|
+
attribute :document, String
|
14
|
+
attribute :original_description, String
|
15
|
+
attribute :user_description, String
|
16
|
+
attribute :notes, String
|
17
|
+
attribute :amount, Decimal
|
18
|
+
attribute :id, Integer
|
19
|
+
attribute :is_pending, Boolean
|
20
|
+
attribute :created_at, DateTime
|
21
|
+
attribute :updated_at, DateTime
|
22
|
+
attribute :guid, String
|
23
|
+
attribute :imported_from_sync, Boolean
|
24
|
+
attribute :transfer_id, Integer
|
25
|
+
attribute :absolute_amount, Decimal
|
26
|
+
attribute :bank_statement_id, Integer
|
27
|
+
attribute :balance_difference, Boolean
|
28
|
+
attribute :force_destroy, Boolean
|
29
|
+
attribute :divided, Boolean
|
30
|
+
attribute :attachments_count, Integer
|
31
|
+
attribute :duplicity_suspicion_id, Integer
|
32
|
+
attribute :excel_import_id, Integer
|
33
|
+
attribute :observation, String
|
34
|
+
attribute :api_related, Boolean
|
35
|
+
attribute :bank_slips_count, Integer
|
36
|
+
attribute :reconciled, Boolean
|
37
|
+
attribute :indexed_at, DateTime
|
38
|
+
attribute :automatic_rule_related, Boolean
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Myfinance
|
2
|
+
module Entities
|
3
|
+
#
|
4
|
+
# A wrapper to Myfinance financial transactions collection
|
5
|
+
#
|
6
|
+
class FinancialTransactionCollection < Collection
|
7
|
+
def build_collection
|
8
|
+
response.parsed_body.each do |attributes|
|
9
|
+
collection.push(Myfinance::Entities::FinancialTransaction.new(attributes["financial_transaction"]))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/myfinance/request.rb
CHANGED
@@ -46,7 +46,7 @@ module Myfinance
|
|
46
46
|
# Documentation: https://app.myfinance.com.br/docs/api/receivable_accounts#delete_destroy
|
47
47
|
#
|
48
48
|
def destroy(id, entity_id)
|
49
|
-
http.delete(endpoint_for(id, entity_id, :destroy)) do |
|
49
|
+
http.delete(endpoint_for(id, entity_id, :destroy)) do |_response|
|
50
50
|
true
|
51
51
|
end
|
52
52
|
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
module Myfinance
|
2
|
+
module Resources
|
3
|
+
class FinancialTransaction < Base
|
4
|
+
#
|
5
|
+
# A wrapper to Myfinance financial transaction API
|
6
|
+
#
|
7
|
+
# [API]
|
8
|
+
# Documentation: https://app.myfinance.com.br/docs/api/financial_transactions
|
9
|
+
#
|
10
|
+
def find_all(entity_id, deposit_account_id)
|
11
|
+
#
|
12
|
+
# List all financial transactions
|
13
|
+
#
|
14
|
+
# [API]
|
15
|
+
# Method: <tt>GET entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions</tt>
|
16
|
+
#
|
17
|
+
# Documentation: https://app.myfinance.com.br/docs/api/financial_transactions#get_index
|
18
|
+
#
|
19
|
+
http.get(path(entity_id, deposit_account_id), body: {}) do |response|
|
20
|
+
respond_with_collection(response)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def find(entity_id, deposit_account_id, id)
|
25
|
+
#
|
26
|
+
# Show a financial transaction
|
27
|
+
#
|
28
|
+
# [API]
|
29
|
+
# Method: <tt>GET entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id</tt>
|
30
|
+
#
|
31
|
+
# Documentation: https://app.myfinance.com.br/docs/api/financial_transactions#get_show
|
32
|
+
#
|
33
|
+
ft_path = path(entity_id, deposit_account_id) + "/#{id}"
|
34
|
+
http.get(ft_path, body: {}) do |response|
|
35
|
+
respond_with_object(response, "financial_transaction")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def create(entity_id, deposit_account_id, params = {})
|
40
|
+
#
|
41
|
+
# Create a financial transaction
|
42
|
+
#
|
43
|
+
# [API]
|
44
|
+
# Method: <tt>POST entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions</tt>
|
45
|
+
#
|
46
|
+
# Documentation: https://app.myfinance.com.br/docs/api/financial_transactions#post_create
|
47
|
+
#
|
48
|
+
body = { financial_transaction: params }
|
49
|
+
http.post(path(entity_id, deposit_account_id), { body: body }) do |response|
|
50
|
+
respond_with_object(response, "financial_transaction")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def update(entity_id, deposit_account_id, id, params = {})
|
55
|
+
# Update a financial transaction
|
56
|
+
#
|
57
|
+
# [API]
|
58
|
+
# Method: <tt>PUT entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id</tt>
|
59
|
+
#
|
60
|
+
# Documentation: https://app.myfinance.com.br/docs/api/financial_transactions#put_update
|
61
|
+
#
|
62
|
+
ft_path = path(entity_id, deposit_account_id) + "/#{id}"
|
63
|
+
body = { financial_transaction: params }
|
64
|
+
http.put(ft_path, { body: body }) do |response|
|
65
|
+
respond_with_object(response, "financial_transaction")
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def destroy(entity_id, deposit_account_id, id)
|
70
|
+
# Delete a financial transaction
|
71
|
+
#
|
72
|
+
# [API]
|
73
|
+
# Method: <tt>DELETE entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id</tt>
|
74
|
+
#
|
75
|
+
# Documentation: https://app.myfinance.com.br/docs/api/financial_transactions#delete_destroy
|
76
|
+
#
|
77
|
+
ft_path = path(entity_id, deposit_account_id) + "/#{id}"
|
78
|
+
http.delete(ft_path, body: {}) do |response|
|
79
|
+
response
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def destroy_many(entity_id, deposit_account_id, ids=[])
|
84
|
+
# Delete many financial transactions
|
85
|
+
#
|
86
|
+
# [API]
|
87
|
+
# Method: <tt>DELETE entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/destroy_many?selected_ids=:id1,id2,id3</tt>
|
88
|
+
#
|
89
|
+
# Documentation: https://app.myfinance.com.br/docs/api/financial_transactions#delete_destroy_many
|
90
|
+
#
|
91
|
+
ft_path = destroy_many_path(entity_id, deposit_account_id, ids)
|
92
|
+
http.delete(ft_path, body: {}) do |response|
|
93
|
+
response
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
def path(entity_id, deposit_account_id)
|
101
|
+
"/entities/#{entity_id}/deposit_accounts/#{deposit_account_id}/financial_transactions"
|
102
|
+
end
|
103
|
+
|
104
|
+
def destroy_many_path(entity_id, deposit_account_id, ids)
|
105
|
+
path(entity_id, deposit_account_id) + "/destroy_many?selected_ids=#{ids.join(",")}"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/lib/myfinance/version.rb
CHANGED
@@ -84,6 +84,16 @@ describe Myfinance::Client do
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
+
describe "#financial_transactions" do
|
88
|
+
it "instantiates a new Myfinance::Resources::FinancialTransaction" do
|
89
|
+
expect(
|
90
|
+
Myfinance::Resources::FinancialTransaction
|
91
|
+
).to receive(:new).with(subject.http)
|
92
|
+
|
93
|
+
subject.financial_transactions
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
87
97
|
describe "#deposit_accounts" do
|
88
98
|
it "instantiates a new Myfinance::Resources::DepositAccount" do
|
89
99
|
expect(
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Myfinance::Entities::FinancialTransactionCollection do
|
4
|
+
let(:entity_klass) { described_class }
|
5
|
+
|
6
|
+
let(:params) { double(headers: {}, parsed_body: [{}]) }
|
7
|
+
|
8
|
+
subject { described_class.new(params) }
|
9
|
+
|
10
|
+
context "#build" do
|
11
|
+
it "returns order collection" do
|
12
|
+
expect(subject.build).to be_a(entity_klass)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "returns order" do
|
16
|
+
subject.build
|
17
|
+
expect(subject.collection.count).to eq(1)
|
18
|
+
expect(
|
19
|
+
subject.collection.first
|
20
|
+
).to be_a(Myfinance::Entities::FinancialTransaction)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Myfinance::Entities::FinancialTransaction do
|
4
|
+
it_behaves_like "entity_attributes", [:deposit_account_id, :person_id, :parent_id, :owner_id, :currency_id,
|
5
|
+
:category_id, :type, :occurred_at, :document, :original_description,
|
6
|
+
:user_description, :notes, :amount, :id, :is_pending, :created_at,
|
7
|
+
:updated_at, :guid, :imported_from_sync, :transfer_id, :absolute_amount,
|
8
|
+
:bank_statement_id, :balance_difference, :force_destroy, :divided,
|
9
|
+
:attachments_count, :duplicity_suspicion_id, :excel_import_id,
|
10
|
+
:observation, :api_related, :bank_slips_count, :reconciled, :indexed_at,
|
11
|
+
:automatic_rule_related, :classification_center_id]
|
12
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Myfinance::Resources::FinancialTransaction, vcr: true do
|
4
|
+
let(:da_id) { 14268 }
|
5
|
+
let(:ent_id) { 3798 }
|
6
|
+
let(:ft_id) { 1663920 }
|
7
|
+
let(:financial_transactions) { client.financial_transactions }
|
8
|
+
let(:params) { { amount: 68.5, occurred_at: "2011-07-15", type: "Debit" } }
|
9
|
+
let(:request_error) { Myfinance::RequestError }
|
10
|
+
|
11
|
+
describe "#find_all" do
|
12
|
+
context "when successful" do
|
13
|
+
subject { client.financial_transactions.find_all(ent_id, da_id) }
|
14
|
+
before :each do
|
15
|
+
subject.build
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns a 200 OK response code" do
|
19
|
+
expect(subject.response.code).to eq(200)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "return collection of FinancialTransactions" do
|
23
|
+
expect(subject).to be_a(Myfinance::Entities::FinancialTransactionCollection)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "when supplying invalid IDs" do
|
28
|
+
it "raises not found error with error 404" do
|
29
|
+
expect { financial_transactions.find_all(nil, nil) }.to raise_error(request_error) do |e|
|
30
|
+
expect(e.code).to eq(404)
|
31
|
+
expect(e.message).to eq("Not Found")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "#find" do
|
38
|
+
context "when successful" do
|
39
|
+
subject { client.financial_transactions.find(ent_id, da_id, ft_id) }
|
40
|
+
|
41
|
+
it "returns a FinancialTransactions" do
|
42
|
+
expect(subject).to be_a(Myfinance::Entities::FinancialTransaction)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "when supplying invalid IDs" do
|
47
|
+
it "raises not found error with error 404" do
|
48
|
+
expect { financial_transactions.find(nil, nil, nil) }.to raise_error(request_error) do |e|
|
49
|
+
expect(e.code).to eq(404)
|
50
|
+
expect(e.message).to eq("Not Found")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#create" do
|
57
|
+
context "when successful" do
|
58
|
+
let(:ft) { client.financial_transactions.create(ent_id, da_id, params) }
|
59
|
+
|
60
|
+
it "returns created FT" do
|
61
|
+
expect(ft.type).to eq("Debit")
|
62
|
+
expect(ft.amount).to eq(-68.5)
|
63
|
+
expect(ft.occurred_at).to eq(Date.new(2011, 07, 15))
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when supplying invalid params" do
|
68
|
+
it "raises error" do
|
69
|
+
params[:type] = "QUALQUER"
|
70
|
+
expect { financial_transactions.create(ent_id, da_id, params) }.to raise_error(request_error) do |e|
|
71
|
+
expect(e.code).to eq(500)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "#update" do
|
78
|
+
context "when successful" do
|
79
|
+
let(:params) { { id: ft_id, absolute_amount: BigDecimal.new(500), amount: BigDecimal.new(500) } }
|
80
|
+
let(:ft) { client.financial_transactions.update(ent_id, da_id, ft_id, params) }
|
81
|
+
|
82
|
+
it "returns updated FT" do
|
83
|
+
expect(ft).to be_a(Myfinance::Entities::FinancialTransaction)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "when supplying invalid params" do
|
88
|
+
let(:params) {{ absolute_amount: BigDecimal.new(500), occurred_at: "2011-07-15", type: "QUALQUER"}}
|
89
|
+
|
90
|
+
it "raises error" do
|
91
|
+
expect { financial_transactions.update(ent_id, da_id, ft_id, params) }.to raise_error(request_error) do |e|
|
92
|
+
expect(e.code).to eq(500)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "#destroy" do
|
99
|
+
context "when successful" do
|
100
|
+
let(:ft) { client.financial_transactions.create(ent_id, da_id, params) }
|
101
|
+
subject { client.financial_transactions.destroy(ent_id, da_id, ft.id) }
|
102
|
+
|
103
|
+
it "returns 200 OK" do
|
104
|
+
expect(subject.code).to eq(200)
|
105
|
+
end
|
106
|
+
|
107
|
+
context "when supplying unknown ID" do
|
108
|
+
it "returns 404 not found" do
|
109
|
+
expect { financial_transactions.destroy(ent_id, da_id, 99999) }.to raise_error(request_error) do |e|
|
110
|
+
expect(e.code).to eq(404)
|
111
|
+
expect(e.message).to eq("Not Found")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe "#destroy_many" do
|
119
|
+
context "when successful" do
|
120
|
+
let(:params) { { amount: 42.42, occurred_at: "2011-07-15", type: "Debit" } }
|
121
|
+
let(:ft) { client.financial_transactions.create(ent_id, da_id, params) }
|
122
|
+
let(:ft2) { client.financial_transactions.create(ent_id, da_id, params) }
|
123
|
+
subject { client.financial_transactions.destroy_many(ent_id, da_id, [ft.id, ft2.id]) }
|
124
|
+
|
125
|
+
it "returns 200 OK" do
|
126
|
+
expect(subject.code).to eq(200)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
data/spec/support/client.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myfinance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo Hertz
|
@@ -253,6 +253,8 @@ files:
|
|
253
253
|
- lib/myfinance/entities/entity.rb
|
254
254
|
- lib/myfinance/entities/entity_collection.rb
|
255
255
|
- lib/myfinance/entities/financial_account.rb
|
256
|
+
- lib/myfinance/entities/financial_transaction.rb
|
257
|
+
- lib/myfinance/entities/financial_transaction_collection.rb
|
256
258
|
- lib/myfinance/entities/payable_account.rb
|
257
259
|
- lib/myfinance/entities/person.rb
|
258
260
|
- lib/myfinance/entities/person_collection.rb
|
@@ -272,6 +274,7 @@ files:
|
|
272
274
|
- lib/myfinance/resources/deposit_account.rb
|
273
275
|
- lib/myfinance/resources/entity.rb
|
274
276
|
- lib/myfinance/resources/financial_account.rb
|
277
|
+
- lib/myfinance/resources/financial_transaction.rb
|
275
278
|
- lib/myfinance/resources/payable_account.rb
|
276
279
|
- lib/myfinance/resources/person.rb
|
277
280
|
- lib/myfinance/resources/receivable_account.rb
|
@@ -296,6 +299,8 @@ files:
|
|
296
299
|
- spec/lib/myfinance/entities/deposit_account_spec.rb
|
297
300
|
- spec/lib/myfinance/entities/entity_collection_spec.rb
|
298
301
|
- spec/lib/myfinance/entities/entity_spec.rb
|
302
|
+
- spec/lib/myfinance/entities/financial_transaction_collection_spec.rb
|
303
|
+
- spec/lib/myfinance/entities/financial_transaction_spec.rb
|
299
304
|
- spec/lib/myfinance/entities/payable_account_spec.rb
|
300
305
|
- spec/lib/myfinance/entities/person_collection_spec.rb
|
301
306
|
- spec/lib/myfinance/entities/person_spec.rb
|
@@ -312,6 +317,7 @@ files:
|
|
312
317
|
- spec/lib/myfinance/resources/classification_center_spec.rb
|
313
318
|
- spec/lib/myfinance/resources/deposit_account_spec.rb
|
314
319
|
- spec/lib/myfinance/resources/entity_spec.rb
|
320
|
+
- spec/lib/myfinance/resources/financial_transaction_spec.rb
|
315
321
|
- spec/lib/myfinance/resources/payable_account_spec.rb
|
316
322
|
- spec/lib/myfinance/resources/person_spec.rb
|
317
323
|
- spec/lib/myfinance/resources/receivable_account_spec.rb
|
@@ -368,6 +374,8 @@ test_files:
|
|
368
374
|
- spec/lib/myfinance/entities/deposit_account_spec.rb
|
369
375
|
- spec/lib/myfinance/entities/entity_collection_spec.rb
|
370
376
|
- spec/lib/myfinance/entities/entity_spec.rb
|
377
|
+
- spec/lib/myfinance/entities/financial_transaction_collection_spec.rb
|
378
|
+
- spec/lib/myfinance/entities/financial_transaction_spec.rb
|
371
379
|
- spec/lib/myfinance/entities/payable_account_spec.rb
|
372
380
|
- spec/lib/myfinance/entities/person_collection_spec.rb
|
373
381
|
- spec/lib/myfinance/entities/person_spec.rb
|
@@ -384,6 +392,7 @@ test_files:
|
|
384
392
|
- spec/lib/myfinance/resources/classification_center_spec.rb
|
385
393
|
- spec/lib/myfinance/resources/deposit_account_spec.rb
|
386
394
|
- spec/lib/myfinance/resources/entity_spec.rb
|
395
|
+
- spec/lib/myfinance/resources/financial_transaction_spec.rb
|
387
396
|
- spec/lib/myfinance/resources/payable_account_spec.rb
|
388
397
|
- spec/lib/myfinance/resources/person_spec.rb
|
389
398
|
- spec/lib/myfinance/resources/receivable_account_spec.rb
|