moneybird 0.3.0 → 0.4.0
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/lib/moneybird.rb +2 -0
- data/lib/moneybird/client.rb +3 -3
- data/lib/moneybird/resource.rb +14 -3
- data/lib/moneybird/resource/administration.rb +11 -11
- data/lib/moneybird/service/administration.rb +1 -0
- data/lib/moneybird/service/contact.rb +2 -0
- data/lib/moneybird/service/document_style.rb +1 -0
- data/lib/moneybird/service/estimate.rb +2 -0
- data/lib/moneybird/service/financial_account.rb +1 -0
- data/lib/moneybird/service/financial_mutation.rb +1 -0
- data/lib/moneybird/service/identity.rb +2 -0
- data/lib/moneybird/service/product.rb +2 -0
- data/lib/moneybird/service/recurring_sales_invoice.rb +2 -0
- data/lib/moneybird/service/sales_invoice.rb +2 -0
- data/lib/moneybird/service/tax_rate.rb +1 -0
- data/lib/moneybird/service/webhook.rb +1 -0
- data/lib/moneybird/service/workflow.rb +1 -0
- data/lib/moneybird/traits/find_all.rb +1 -1
- data/lib/moneybird/traits/save.rb +45 -0
- data/lib/moneybird/traits/service.rb +11 -0
- data/lib/moneybird/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec58b660402eefbeb290851cfff6c05e1c530450
|
4
|
+
data.tar.gz: c3181e0c093d371ec5514c05b1dcb942a7491b5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa6dbfc0163ba772bde29b234a85b3b6d7a980dc2b2e633678900323edac711835cd49ed2897bb584a9819489e15ee406996d31390e28b23ab5605e56d91fa65
|
7
|
+
data.tar.gz: 9078757aeaa5c8d6d405015e253ba5b4713568ed65b7c3fe7649ab6b4d5c820538988e1dc5120b256efdb3ebe431199b5d323ee15680625d4069a36153ed31b6
|
data/lib/moneybird.rb
CHANGED
data/lib/moneybird/client.rb
CHANGED
@@ -43,9 +43,9 @@ module Moneybird
|
|
43
43
|
perform(http)
|
44
44
|
end
|
45
45
|
|
46
|
-
def
|
46
|
+
def patch(path, body=nil, headers={})
|
47
47
|
uri = uri_for_path(path)
|
48
|
-
http = Net::HTTP::
|
48
|
+
http = Net::HTTP::Patch.new(uri.request_uri, self.headers.merge(headers))
|
49
49
|
http.body = body
|
50
50
|
perform(http)
|
51
51
|
end
|
@@ -64,7 +64,7 @@ module Moneybird
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def administrations
|
67
|
-
Moneybird::Administration
|
67
|
+
Moneybird::Service::Administration.new(self).all
|
68
68
|
end
|
69
69
|
|
70
70
|
private
|
data/lib/moneybird/resource.rb
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
module Moneybird
|
2
2
|
module Resource
|
3
3
|
attr_reader :attributes
|
4
|
-
attr_accessor :errors
|
4
|
+
attr_accessor :errors, :client
|
5
5
|
|
6
|
-
def initialize(
|
7
|
-
@client = client
|
6
|
+
def initialize(attributes)
|
8
7
|
self.attributes = attributes
|
9
8
|
end
|
10
9
|
|
10
|
+
def persisted?
|
11
|
+
!!id
|
12
|
+
end
|
13
|
+
|
14
|
+
def path
|
15
|
+
persisted? ? "/#{id}" : ""
|
16
|
+
end
|
17
|
+
|
11
18
|
def attributes=(attributes)
|
12
19
|
@attributes = attributes
|
13
20
|
attributes.each do |attribute, value|
|
@@ -41,6 +48,10 @@ module Moneybird
|
|
41
48
|
module ClassMethods
|
42
49
|
attr_reader :attributes, :nillable_attributes
|
43
50
|
|
51
|
+
def build(attributes)
|
52
|
+
new(attributes)
|
53
|
+
end
|
54
|
+
|
44
55
|
def has_attributes(attributes)
|
45
56
|
attr_accessor(*@attributes = attributes)
|
46
57
|
end
|
@@ -13,47 +13,47 @@ module Moneybird::Resource
|
|
13
13
|
)
|
14
14
|
|
15
15
|
def sales_invoices
|
16
|
-
Moneybird::Service::SalesInvoice.new(@client, id)
|
16
|
+
Moneybird::Service::SalesInvoice.new(@client, id)
|
17
17
|
end
|
18
18
|
|
19
19
|
def recurring_sales_invoices
|
20
|
-
Moneybird::Service::RecurringSalesInvoice.new(@client, id)
|
20
|
+
Moneybird::Service::RecurringSalesInvoice.new(@client, id)
|
21
21
|
end
|
22
22
|
|
23
23
|
def contacts
|
24
|
-
Moneybird::Service::Contact.new(@client, id)
|
24
|
+
Moneybird::Service::Contact.new(@client, id)
|
25
25
|
end
|
26
26
|
|
27
27
|
def estimates
|
28
|
-
Moneybird::Service::Estimate.new(@client, id)
|
28
|
+
Moneybird::Service::Estimate.new(@client, id)
|
29
29
|
end
|
30
30
|
|
31
31
|
def products
|
32
|
-
Moneybird::Service::Product.new(@client, id)
|
32
|
+
Moneybird::Service::Product.new(@client, id)
|
33
33
|
end
|
34
34
|
|
35
35
|
def webhooks
|
36
|
-
Moneybird::Service::Webhook.new(@client, id)
|
36
|
+
Moneybird::Service::Webhook.new(@client, id)
|
37
37
|
end
|
38
38
|
|
39
39
|
def identities
|
40
|
-
Moneybird::Service::Identity.new(@client, id)
|
40
|
+
Moneybird::Service::Identity.new(@client, id)
|
41
41
|
end
|
42
42
|
|
43
43
|
def workflows
|
44
|
-
Moneybird::Service::Workflow.new(@client, id)
|
44
|
+
Moneybird::Service::Workflow.new(@client, id)
|
45
45
|
end
|
46
46
|
|
47
47
|
def tax_rates
|
48
|
-
Moneybird::Service::TaxRate.new(@client, id)
|
48
|
+
Moneybird::Service::TaxRate.new(@client, id)
|
49
49
|
end
|
50
50
|
|
51
51
|
def financial_accounts
|
52
|
-
Moneybird::Service::FinancialAccount.new(@client, id)
|
52
|
+
Moneybird::Service::FinancialAccount.new(@client, id)
|
53
53
|
end
|
54
54
|
|
55
55
|
def financial_mutations
|
56
|
-
Moneybird::Service::FinancialMutation.new(@client, id)
|
56
|
+
Moneybird::Service::FinancialMutation.new(@client, id)
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module Moneybird::Service
|
2
2
|
class RecurringSalesInvoice
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
|
+
include Moneybird::Traits::Service
|
4
5
|
include Moneybird::Traits::FindAll
|
6
|
+
include Moneybird::Traits::Save
|
5
7
|
|
6
8
|
def resource_class
|
7
9
|
Moneybird::Resource::RecurringSalesInvoice
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module Moneybird::Service
|
2
2
|
class SalesInvoice
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
|
+
include Moneybird::Traits::Service
|
4
5
|
include Moneybird::Traits::FindAll
|
6
|
+
include Moneybird::Traits::Save
|
5
7
|
|
6
8
|
def resource_class
|
7
9
|
Moneybird::Resource::SalesInvoice
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Moneybird
|
2
|
+
module Traits
|
3
|
+
module Save
|
4
|
+
CREATE_SUCCESS_CODE = 201
|
5
|
+
UPDATE_SUCCESS_CODE = 200
|
6
|
+
|
7
|
+
def resource_path(resource)
|
8
|
+
[path, resource.path].join('')
|
9
|
+
end
|
10
|
+
|
11
|
+
def save(resource)
|
12
|
+
if resource.persisted?
|
13
|
+
client.patch(resource_path(resource), resource.to_json)
|
14
|
+
if client._last_response.code.to_i == UPDATE_SUCCESS_CODE
|
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.code.to_i == CREATE_SUCCESS_CODE
|
23
|
+
resource.attributes = JSON.parse(client._last_response.body)
|
24
|
+
else
|
25
|
+
resource.errors = client._last_response.body
|
26
|
+
return false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
true
|
30
|
+
end
|
31
|
+
|
32
|
+
def create(attributes)
|
33
|
+
resource = build(attributes)
|
34
|
+
save(resource)
|
35
|
+
resource
|
36
|
+
end
|
37
|
+
|
38
|
+
def update(attributes)
|
39
|
+
resource = build(attributes)
|
40
|
+
save(resource)
|
41
|
+
resource
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/moneybird/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moneybird
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maarten van Vliet
|
@@ -87,6 +87,8 @@ files:
|
|
87
87
|
- lib/moneybird/service/workflow.rb
|
88
88
|
- lib/moneybird/traits/administration_service.rb
|
89
89
|
- lib/moneybird/traits/find_all.rb
|
90
|
+
- lib/moneybird/traits/save.rb
|
91
|
+
- lib/moneybird/traits/service.rb
|
90
92
|
- lib/moneybird/version.rb
|
91
93
|
- moneybird.gemspec
|
92
94
|
homepage: https://github.com/maartenvanvliet/moneybird
|