moneybird 0.9.2 → 0.9.3
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/lib/moneybird.rb +9 -17
- data/lib/moneybird/client.rb +39 -34
- data/lib/moneybird/http_error/authorization_required.rb +6 -0
- data/lib/moneybird/http_error/bad_request.rb +6 -0
- data/lib/moneybird/http_error/forbidden.rb +6 -0
- data/lib/moneybird/http_error/internal_server_error.rb +6 -0
- data/lib/moneybird/http_error/method_not_allowed.rb +6 -0
- data/lib/moneybird/http_error/not_accepted.rb +6 -0
- data/lib/moneybird/http_error/not_found.rb +6 -0
- data/lib/moneybird/http_error/payment_required.rb +6 -0
- data/lib/moneybird/http_error/too_many_requests.rb +6 -0
- data/lib/moneybird/http_error/unprocessable_entity.rb +6 -0
- data/lib/moneybird/middleware/error_handling.rb +25 -0
- data/lib/moneybird/middleware/pagination.rb +29 -0
- data/lib/moneybird/middleware/pagination/links.rb +17 -0
- data/lib/moneybird/resource.rb +0 -1
- data/lib/moneybird/resource/administration.rb +20 -0
- data/lib/moneybird/resource/contact.rb +30 -29
- data/lib/moneybird/resource/documents/general_document.rb +25 -0
- data/lib/moneybird/resource/documents/general_journal_document.rb +26 -0
- data/lib/moneybird/resource/documents/purchase_invoice.rb +49 -0
- data/lib/moneybird/resource/documents/receipt.rb +35 -0
- data/lib/moneybird/resource/documents/typeless_document.rb +26 -0
- data/lib/moneybird/resource/estimate.rb +24 -23
- data/lib/moneybird/resource/financial_mutation.rb +14 -12
- data/lib/moneybird/resource/purchase_invoice.rb +1 -0
- data/lib/moneybird/resource/sales_invoice.rb +1 -0
- data/lib/moneybird/resource/synchronization.rb +13 -0
- data/lib/moneybird/service/administration.rb +6 -4
- data/lib/moneybird/service/contact.rb +7 -8
- data/lib/moneybird/service/document_style.rb +2 -0
- data/lib/moneybird/service/documents/general_document.rb +21 -0
- data/lib/moneybird/service/documents/general_journal_document.rb +21 -0
- data/lib/moneybird/service/documents/purchase_invoice.rb +21 -0
- data/lib/moneybird/service/documents/receipt.rb +21 -0
- data/lib/moneybird/service/documents/typeless_document.rb +21 -0
- data/lib/moneybird/service/estimate.rb +3 -0
- data/lib/moneybird/service/financial_account.rb +2 -0
- data/lib/moneybird/service/financial_mutation.rb +3 -0
- data/lib/moneybird/service/identity.rb +2 -0
- data/lib/moneybird/service/ledger_account.rb +2 -0
- data/lib/moneybird/service/product.rb +2 -0
- data/lib/moneybird/service/purchase_invoice.rb +2 -0
- data/lib/moneybird/service/recurring_sales_invoice.rb +3 -0
- data/lib/moneybird/service/sales_invoice.rb +3 -0
- data/lib/moneybird/service/tax_rate.rb +2 -0
- data/lib/moneybird/service/webhook.rb +2 -0
- data/lib/moneybird/service/workflow.rb +2 -0
- data/lib/moneybird/traits/delete.rb +0 -6
- data/lib/moneybird/traits/find.rb +1 -7
- data/lib/moneybird/traits/find_all.rb +33 -7
- data/lib/moneybird/traits/save.rb +10 -27
- data/lib/moneybird/traits/service.rb +1 -3
- data/lib/moneybird/traits/synchronization.rb +11 -0
- data/lib/moneybird/version.rb +1 -1
- data/moneybird.gemspec +3 -1
- metadata +69 -2
@@ -3,6 +3,9 @@ module Moneybird::Service
|
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
4
|
include Moneybird::Traits::Service
|
5
5
|
include Moneybird::Traits::FindAll
|
6
|
+
include Moneybird::Traits::Synchronization
|
7
|
+
|
8
|
+
private
|
6
9
|
|
7
10
|
def resource_class
|
8
11
|
Moneybird::Resource::FinancialMutation
|
@@ -1,14 +1,8 @@
|
|
1
1
|
module Moneybird
|
2
2
|
module Traits
|
3
3
|
module Delete
|
4
|
-
DELETE_SUCCESS_CODE = 204
|
5
|
-
|
6
4
|
def delete(resource)
|
7
5
|
client.delete(resource_path(resource))
|
8
|
-
if client._last_response.status.to_i != DELETE_SUCCESS_CODE
|
9
|
-
resource.errors = client._last_response.body
|
10
|
-
return false
|
11
|
-
end
|
12
6
|
true
|
13
7
|
end
|
14
8
|
end
|
@@ -1,14 +1,8 @@
|
|
1
1
|
module Moneybird
|
2
2
|
module Traits
|
3
3
|
module Find
|
4
|
-
GET_SUCCESS_CODE = 200
|
5
|
-
|
6
4
|
def find(id)
|
7
|
-
|
8
|
-
|
9
|
-
if result.status.to_i == GET_SUCCESS_CODE
|
10
|
-
build(JSON.parse(result.body))
|
11
|
-
end
|
5
|
+
build client.get("#{path}/#{id}")
|
12
6
|
end
|
13
7
|
end
|
14
8
|
end
|
@@ -1,17 +1,43 @@
|
|
1
1
|
module Moneybird
|
2
2
|
module Traits
|
3
3
|
module FindAll
|
4
|
-
|
4
|
+
def all(params = {})
|
5
|
+
each(params).to_a
|
6
|
+
end
|
5
7
|
|
6
|
-
def
|
7
|
-
|
8
|
+
def each_page(params = {})
|
9
|
+
return enum_for(:each_page, params) unless block_given?
|
10
|
+
client.get_each_page(path, params).map do |resources|
|
11
|
+
yield resources.map { |resource| build resource }
|
12
|
+
end
|
13
|
+
end
|
8
14
|
|
9
|
-
|
10
|
-
|
11
|
-
|
15
|
+
def each(params = {})
|
16
|
+
return enum_for(:each, params) unless block_given?
|
17
|
+
each_page(params).each do |resources|
|
18
|
+
resources.each do |resource|
|
19
|
+
yield resource
|
12
20
|
end
|
13
21
|
end
|
14
22
|
end
|
23
|
+
|
24
|
+
def first_page(params = {})
|
25
|
+
client.get(path, params).map do |resource|
|
26
|
+
build resource
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def first(params = {})
|
31
|
+
params = { per_page: 1 }.merge params
|
32
|
+
build client.get(path, params).first
|
33
|
+
end
|
34
|
+
|
35
|
+
def map(params = {})
|
36
|
+
return enum_for(:map, params) unless block_given?
|
37
|
+
each(params).map do |resource|
|
38
|
+
yield resource
|
39
|
+
end
|
40
|
+
end
|
15
41
|
end
|
16
42
|
end
|
17
|
-
end
|
43
|
+
end
|
@@ -1,45 +1,28 @@
|
|
1
1
|
module Moneybird
|
2
2
|
module Traits
|
3
3
|
module Save
|
4
|
-
CREATE_SUCCESS_CODE = 201
|
5
|
-
UPDATE_SUCCESS_CODE = 200
|
6
|
-
|
7
4
|
def resource_path(resource)
|
8
5
|
[path, resource.path].join('')
|
9
6
|
end
|
10
7
|
|
11
8
|
def save(resource)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
resource.attributes = JSON.parse(client._last_response.body)
|
16
|
-
else
|
17
|
-
resource.errors = client._last_response.body
|
18
|
-
return false
|
19
|
-
end
|
20
|
-
else
|
21
|
-
client.post(resource_path(resource), resource.to_json)
|
22
|
-
if client._last_response.status.to_i == CREATE_SUCCESS_CODE
|
23
|
-
resource.attributes = JSON.parse(client._last_response.body)
|
9
|
+
response =
|
10
|
+
if resource.persisted?
|
11
|
+
client.patch(resource_path(resource), resource.to_json)
|
24
12
|
else
|
25
|
-
resource
|
26
|
-
return false
|
13
|
+
client.post(resource_path(resource), resource.to_json)
|
27
14
|
end
|
28
|
-
|
29
|
-
|
15
|
+
resource.attributes = response
|
16
|
+
resource
|
30
17
|
end
|
31
18
|
|
32
19
|
def create(attributes)
|
33
|
-
|
34
|
-
|
35
|
-
|
20
|
+
build(attributes).tap do |resource|
|
21
|
+
save(resource)
|
22
|
+
end
|
36
23
|
end
|
37
24
|
|
38
|
-
|
39
|
-
resource = build(attributes)
|
40
|
-
save(resource)
|
41
|
-
resource
|
42
|
-
end
|
25
|
+
alias update create
|
43
26
|
end
|
44
27
|
end
|
45
28
|
end
|
data/lib/moneybird/version.rb
CHANGED
data/moneybird.gemspec
CHANGED
@@ -21,10 +21,12 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_dependency "activesupport", '>= 0.12'
|
23
23
|
spec.add_dependency "faraday"
|
24
|
+
spec.add_dependency "faraday_middleware"
|
25
|
+
spec.add_dependency "link_header", "~> 0.0.8"
|
24
26
|
|
25
27
|
spec.add_development_dependency "bundler", "~> 1.11"
|
26
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
29
|
spec.add_development_dependency "codeclimate-test-reporter"
|
28
30
|
spec.add_development_dependency "minitest"
|
29
|
-
|
31
|
+
spec.add_development_dependency "webmock", "~> 3.1"
|
30
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moneybird
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maarten van Vliet
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: faraday_middleware
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: link_header
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.8
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.0.8
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: bundler
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +122,20 @@ dependencies:
|
|
94
122
|
- - ">="
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: webmock
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.1'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.1'
|
97
139
|
description: 'Library to interface with Moneybird API: http://developer.moneybird.com/'
|
98
140
|
email:
|
99
141
|
- maartenvanvliet@gmail.com
|
@@ -116,10 +158,28 @@ files:
|
|
116
158
|
- bin/setup
|
117
159
|
- lib/moneybird.rb
|
118
160
|
- lib/moneybird/client.rb
|
161
|
+
- lib/moneybird/http_error/authorization_required.rb
|
162
|
+
- lib/moneybird/http_error/bad_request.rb
|
163
|
+
- lib/moneybird/http_error/forbidden.rb
|
164
|
+
- lib/moneybird/http_error/internal_server_error.rb
|
165
|
+
- lib/moneybird/http_error/method_not_allowed.rb
|
166
|
+
- lib/moneybird/http_error/not_accepted.rb
|
167
|
+
- lib/moneybird/http_error/not_found.rb
|
168
|
+
- lib/moneybird/http_error/payment_required.rb
|
169
|
+
- lib/moneybird/http_error/too_many_requests.rb
|
170
|
+
- lib/moneybird/http_error/unprocessable_entity.rb
|
171
|
+
- lib/moneybird/middleware/error_handling.rb
|
172
|
+
- lib/moneybird/middleware/pagination.rb
|
173
|
+
- lib/moneybird/middleware/pagination/links.rb
|
119
174
|
- lib/moneybird/resource.rb
|
120
175
|
- lib/moneybird/resource/administration.rb
|
121
176
|
- lib/moneybird/resource/contact.rb
|
122
177
|
- lib/moneybird/resource/document_style.rb
|
178
|
+
- lib/moneybird/resource/documents/general_document.rb
|
179
|
+
- lib/moneybird/resource/documents/general_journal_document.rb
|
180
|
+
- lib/moneybird/resource/documents/purchase_invoice.rb
|
181
|
+
- lib/moneybird/resource/documents/receipt.rb
|
182
|
+
- lib/moneybird/resource/documents/typeless_document.rb
|
123
183
|
- lib/moneybird/resource/estimate.rb
|
124
184
|
- lib/moneybird/resource/financial_account.rb
|
125
185
|
- lib/moneybird/resource/financial_mutation.rb
|
@@ -133,12 +193,18 @@ files:
|
|
133
193
|
- lib/moneybird/resource/purchase_invoice.rb
|
134
194
|
- lib/moneybird/resource/recurring_sales_invoice.rb
|
135
195
|
- lib/moneybird/resource/sales_invoice.rb
|
196
|
+
- lib/moneybird/resource/synchronization.rb
|
136
197
|
- lib/moneybird/resource/tax_rate.rb
|
137
198
|
- lib/moneybird/resource/webhook.rb
|
138
199
|
- lib/moneybird/resource/workflow.rb
|
139
200
|
- lib/moneybird/service/administration.rb
|
140
201
|
- lib/moneybird/service/contact.rb
|
141
202
|
- lib/moneybird/service/document_style.rb
|
203
|
+
- lib/moneybird/service/documents/general_document.rb
|
204
|
+
- lib/moneybird/service/documents/general_journal_document.rb
|
205
|
+
- lib/moneybird/service/documents/purchase_invoice.rb
|
206
|
+
- lib/moneybird/service/documents/receipt.rb
|
207
|
+
- lib/moneybird/service/documents/typeless_document.rb
|
142
208
|
- lib/moneybird/service/estimate.rb
|
143
209
|
- lib/moneybird/service/financial_account.rb
|
144
210
|
- lib/moneybird/service/financial_mutation.rb
|
@@ -157,6 +223,7 @@ files:
|
|
157
223
|
- lib/moneybird/traits/find_all.rb
|
158
224
|
- lib/moneybird/traits/save.rb
|
159
225
|
- lib/moneybird/traits/service.rb
|
226
|
+
- lib/moneybird/traits/synchronization.rb
|
160
227
|
- lib/moneybird/version.rb
|
161
228
|
- lib/moneybird/webhook.rb
|
162
229
|
- moneybird.gemspec
|