moneybird 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|