moneybird 0.9.2 → 0.9.3
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/.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
|