moneybird 0.4.0 → 0.5.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/README.md +24 -1
- data/lib/moneybird.rb +27 -28
- data/lib/moneybird/resource/contact.rb +1 -0
- data/lib/moneybird/resource/estimate.rb +8 -0
- data/lib/moneybird/resource/invoice/details.rb +25 -0
- data/lib/moneybird/resource/ledger_account.rb +16 -0
- data/lib/moneybird/resource/recurring_sales_invoice.rb +8 -0
- data/lib/moneybird/resource/sales_invoice.rb +8 -0
- data/lib/moneybird/service/administration.rb +4 -0
- data/lib/moneybird/service/contact.rb +8 -0
- data/lib/moneybird/service/estimate.rb +2 -0
- data/lib/moneybird/service/identity.rb +2 -0
- data/lib/moneybird/service/ledger_account.rb +18 -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/webhook.rb +1 -0
- data/lib/moneybird/traits/delete.rb +16 -0
- data/lib/moneybird/traits/find.rb +11 -0
- data/lib/moneybird/version.rb +1 -1
- data/lib/moneybird/webhook.rb +27 -0
- metadata +7 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 780e8a422f459674c1fc1cb8bf87321ead351b25
|
4
|
+
data.tar.gz: 9c221b4dd29c65fef045d3cf0bb2bbc9bec28d8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4241fa82ab6679c464c1ab06eb9146ad30b2776ec0d145aad7026d8d8a318700fc24b1e0e0525f87ceca3b1cc6d8b1576f2feee0cad631473f509c97b4d83e23
|
7
|
+
data.tar.gz: 1c6ac8b29bd8c2835d564d8ffde48b127efa23de615bbfcfdb886cedb0452b171d22b266cf3aff0ab23f0eea16e6ab4b6563614e556af56008dcba361fd2bc1b
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
Gem to talk to the Moneybird REST API. Right now you'll need to get a 'bearer' token for the client to work, oauth2 support may added later. This gem is still under construction and any methods may still change signature without notice until 1.0 is released.
|
4
4
|
|
5
|
+
The library is modelled after http://developer.moneybird.com/ Any inconsistencies or errors in the documentation may also be present in the library.
|
6
|
+
|
5
7
|
Feel free to file Pull Requests
|
6
8
|
|
7
9
|
## Installation
|
@@ -23,8 +25,29 @@ Or install it yourself as:
|
|
23
25
|
## Usage
|
24
26
|
|
25
27
|
```ruby
|
28
|
+
# Client uses bearer token (see: http://developer.moneybird.com/authentication/)
|
29
|
+
Moneybird::Client.new('fe3f7f9e239e7d925f9caf695028e60fd3e5c2085f7aebb983cea731dea6b44f')
|
30
|
+
|
31
|
+
# List administrations
|
32
|
+
administrations = client.administrations
|
33
|
+
|
34
|
+
administration = administrations.first
|
35
|
+
|
36
|
+
# List invoices
|
37
|
+
administration.sales_invoices.all
|
38
|
+
|
39
|
+
# List contacts
|
40
|
+
administration.contacts.all
|
41
|
+
|
42
|
+
# Create contact
|
43
|
+
administrations.contacts.create(company_name: 'ACME', firstname: 'Foo', lastname: 'Bar')
|
44
|
+
|
45
|
+
# Update contact
|
46
|
+
contact = administration.contacts.all.first
|
47
|
+
contact.company_name = 'Something new'
|
48
|
+
administrations.contacts.save(contact)
|
26
49
|
|
27
|
-
|
50
|
+
# Works similarly with other resources
|
28
51
|
|
29
52
|
```
|
30
53
|
|
data/lib/moneybird.rb
CHANGED
@@ -8,39 +8,38 @@ module Moneybird
|
|
8
8
|
end
|
9
9
|
|
10
10
|
require "moneybird/traits/administration_service"
|
11
|
+
require "moneybird/traits/find"
|
11
12
|
require "moneybird/traits/find_all"
|
12
13
|
require "moneybird/traits/service"
|
13
14
|
require "moneybird/traits/save"
|
15
|
+
require "moneybird/traits/delete"
|
16
|
+
require "moneybird/client"
|
17
|
+
require "moneybird/resource"
|
18
|
+
require "moneybird/resource/invoice/details"
|
19
|
+
require "moneybird/webhook"
|
14
20
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
resources = %w(
|
22
|
+
administration
|
23
|
+
contact
|
24
|
+
document_style
|
25
|
+
estimate
|
26
|
+
financial_account
|
27
|
+
financial_mutation
|
28
|
+
identity
|
29
|
+
ledger_account
|
30
|
+
product
|
31
|
+
recurring_sales_invoice
|
32
|
+
sales_invoice
|
33
|
+
tax_rate
|
34
|
+
webhook
|
35
|
+
workflow
|
36
|
+
)
|
37
|
+
|
38
|
+
resources.each do |resource|
|
39
|
+
require "moneybird/service/#{resource}"
|
40
|
+
require "moneybird/resource/#{resource}"
|
41
|
+
end
|
28
42
|
|
29
|
-
require "moneybird/client"
|
30
43
|
|
31
|
-
require "moneybird/resource"
|
32
|
-
require "moneybird/resource/administration"
|
33
|
-
require "moneybird/resource/contact"
|
34
|
-
require "moneybird/resource/document_style"
|
35
|
-
require "moneybird/resource/estimate"
|
36
|
-
require "moneybird/resource/financial_account"
|
37
|
-
require "moneybird/resource/financial_mutation"
|
38
|
-
require "moneybird/resource/identity"
|
39
|
-
require "moneybird/resource/product"
|
40
|
-
require "moneybird/resource/recurring_sales_invoice"
|
41
|
-
require "moneybird/resource/sales_invoice"
|
42
|
-
require "moneybird/resource/tax_rate"
|
43
|
-
require "moneybird/resource/webhook"
|
44
|
-
require "moneybird/resource/workflow"
|
45
44
|
|
46
45
|
require "moneybird/version"
|
@@ -40,5 +40,13 @@ module Moneybird::Resource
|
|
40
40
|
notes
|
41
41
|
attachments
|
42
42
|
)
|
43
|
+
|
44
|
+
def contact=(attributes)
|
45
|
+
@contact ||= Moneybird::Resource::Contact.build(attributes)
|
46
|
+
end
|
47
|
+
|
48
|
+
def details=(line_items)
|
49
|
+
@details ||= line_items.map{ |line_item| Moneybird::Resource::Invoice::Details.build(line_item) }
|
50
|
+
end
|
43
51
|
end
|
44
52
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Moneybird::Resource::Invoice
|
2
|
+
class Details
|
3
|
+
include Moneybird::Resource
|
4
|
+
extend Moneybird::Resource::ClassMethods
|
5
|
+
|
6
|
+
has_attributes %i(
|
7
|
+
tax_rate_id
|
8
|
+
ledger_account_id
|
9
|
+
amount
|
10
|
+
price
|
11
|
+
description
|
12
|
+
row_order
|
13
|
+
total_price_excl_tax_with_discount
|
14
|
+
total_price_excl_tax_with_discount_base
|
15
|
+
tax_report_reference
|
16
|
+
id
|
17
|
+
created_at
|
18
|
+
updated_at
|
19
|
+
)
|
20
|
+
|
21
|
+
def contact=(attributes)
|
22
|
+
@contact = Moneybird::Resource::Contact.build(attributes)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -34,6 +34,14 @@ module Moneybird::Resource
|
|
34
34
|
notes
|
35
35
|
attachments
|
36
36
|
)
|
37
|
+
|
38
|
+
def contact=(attributes)
|
39
|
+
@contact ||= Moneybird::Resource::Contact.build(attributes)
|
40
|
+
end
|
41
|
+
|
42
|
+
def details=(line_items)
|
43
|
+
@details ||= line_items.map{ |line_item| Moneybird::Resource::Invoice::Details.build(line_item) }
|
44
|
+
end
|
37
45
|
end
|
38
46
|
end
|
39
47
|
|
@@ -38,6 +38,14 @@ module Moneybird::Resource
|
|
38
38
|
url
|
39
39
|
workflow_id
|
40
40
|
)
|
41
|
+
|
42
|
+
def contact=(attributes)
|
43
|
+
@contact ||= Moneybird::Resource::Contact.build(attributes)
|
44
|
+
end
|
45
|
+
|
46
|
+
def details=(line_items)
|
47
|
+
@details ||= line_items.map{ |line_item| Moneybird::Resource::Invoice::Details.build(line_item) }
|
48
|
+
end
|
41
49
|
end
|
42
50
|
end
|
43
51
|
|
@@ -2,8 +2,10 @@ module Moneybird::Service
|
|
2
2
|
class Contact
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
4
|
include Moneybird::Traits::Service
|
5
|
+
include Moneybird::Traits::Find
|
5
6
|
include Moneybird::Traits::FindAll
|
6
7
|
include Moneybird::Traits::Save
|
8
|
+
include Moneybird::Traits::Delete
|
7
9
|
|
8
10
|
def resource_class
|
9
11
|
Moneybird::Resource::Contact
|
@@ -12,5 +14,11 @@ module Moneybird::Service
|
|
12
14
|
def path
|
13
15
|
"#{administration_id}/contacts"
|
14
16
|
end
|
17
|
+
|
18
|
+
def find_by_customer_id(customer_id)
|
19
|
+
result = client.get("#{path}/customer_id/#{customer_id}")
|
20
|
+
|
21
|
+
build(JSON.parse(result.body))
|
22
|
+
end
|
15
23
|
end
|
16
24
|
end
|
@@ -2,8 +2,10 @@ module Moneybird::Service
|
|
2
2
|
class Estimate
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
4
|
include Moneybird::Traits::Service
|
5
|
+
include Moneybird::Traits::Find
|
5
6
|
include Moneybird::Traits::FindAll
|
6
7
|
include Moneybird::Traits::Save
|
8
|
+
include Moneybird::Traits::Delete
|
7
9
|
|
8
10
|
def resource_class
|
9
11
|
Moneybird::Resource::Estimate
|
@@ -2,8 +2,10 @@ module Moneybird::Service
|
|
2
2
|
class Identity
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
4
|
include Moneybird::Traits::Service
|
5
|
+
include Moneybird::Traits::Find
|
5
6
|
include Moneybird::Traits::FindAll
|
6
7
|
include Moneybird::Traits::Save
|
8
|
+
include Moneybird::Traits::Delete
|
7
9
|
|
8
10
|
def resource_class
|
9
11
|
Moneybird::Resource::Identity
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Moneybird::Service
|
2
|
+
class LedgerAccount
|
3
|
+
include Moneybird::Traits::AdministrationService
|
4
|
+
include Moneybird::Traits::Service
|
5
|
+
include Moneybird::Traits::Find
|
6
|
+
include Moneybird::Traits::FindAll
|
7
|
+
include Moneybird::Traits::Save
|
8
|
+
include Moneybird::Traits::Delete
|
9
|
+
|
10
|
+
def resource_class
|
11
|
+
Moneybird::Resource::LedgerAccount
|
12
|
+
end
|
13
|
+
|
14
|
+
def path
|
15
|
+
"#{administration_id}/ledger_accounts"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -2,8 +2,10 @@ module Moneybird::Service
|
|
2
2
|
class Product
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
4
|
include Moneybird::Traits::Service
|
5
|
+
include Moneybird::Traits::Find
|
5
6
|
include Moneybird::Traits::FindAll
|
6
7
|
include Moneybird::Traits::Save
|
8
|
+
include Moneybird::Traits::Delete
|
7
9
|
|
8
10
|
def resource_class
|
9
11
|
Moneybird::Resource::Product
|
@@ -2,8 +2,10 @@ module Moneybird::Service
|
|
2
2
|
class RecurringSalesInvoice
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
4
|
include Moneybird::Traits::Service
|
5
|
+
include Moneybird::Traits::Find
|
5
6
|
include Moneybird::Traits::FindAll
|
6
7
|
include Moneybird::Traits::Save
|
8
|
+
include Moneybird::Traits::Delete
|
7
9
|
|
8
10
|
def resource_class
|
9
11
|
Moneybird::Resource::RecurringSalesInvoice
|
@@ -2,8 +2,10 @@ module Moneybird::Service
|
|
2
2
|
class SalesInvoice
|
3
3
|
include Moneybird::Traits::AdministrationService
|
4
4
|
include Moneybird::Traits::Service
|
5
|
+
include Moneybird::Traits::Find
|
5
6
|
include Moneybird::Traits::FindAll
|
6
7
|
include Moneybird::Traits::Save
|
8
|
+
include Moneybird::Traits::Delete
|
7
9
|
|
8
10
|
def resource_class
|
9
11
|
Moneybird::Resource::SalesInvoice
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Moneybird
|
2
|
+
module Traits
|
3
|
+
module Delete
|
4
|
+
DELETE_SUCCESS_CODE = 200
|
5
|
+
|
6
|
+
def delete(resource)
|
7
|
+
client.delete(resource_path(resource))
|
8
|
+
if client._last_response.code.to_i != DELETE_SUCCESS_CODE
|
9
|
+
resource.errors = client._last_response.body
|
10
|
+
return false
|
11
|
+
end
|
12
|
+
true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/moneybird/version.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Moneybird
|
2
|
+
class Webhook
|
3
|
+
include Moneybird::Resource
|
4
|
+
extend Moneybird::Resource::ClassMethods
|
5
|
+
|
6
|
+
has_attributes %i(
|
7
|
+
administration_id
|
8
|
+
webhook_id
|
9
|
+
entity_type
|
10
|
+
entity_id
|
11
|
+
state
|
12
|
+
entity
|
13
|
+
)
|
14
|
+
|
15
|
+
def build_entity
|
16
|
+
entity_resource_class.new(entity)
|
17
|
+
end
|
18
|
+
|
19
|
+
def entity_resource_class
|
20
|
+
Object.const_get "Moneybird::Resource::#{entity_type}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.from_json(payload)
|
24
|
+
build(JSON.parse(payload))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
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.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maarten van Vliet
|
@@ -66,6 +66,8 @@ files:
|
|
66
66
|
- lib/moneybird/resource/financial_account.rb
|
67
67
|
- lib/moneybird/resource/financial_mutation.rb
|
68
68
|
- lib/moneybird/resource/identity.rb
|
69
|
+
- lib/moneybird/resource/invoice/details.rb
|
70
|
+
- lib/moneybird/resource/ledger_account.rb
|
69
71
|
- lib/moneybird/resource/product.rb
|
70
72
|
- lib/moneybird/resource/recurring_sales_invoice.rb
|
71
73
|
- lib/moneybird/resource/sales_invoice.rb
|
@@ -79,6 +81,7 @@ files:
|
|
79
81
|
- lib/moneybird/service/financial_account.rb
|
80
82
|
- lib/moneybird/service/financial_mutation.rb
|
81
83
|
- lib/moneybird/service/identity.rb
|
84
|
+
- lib/moneybird/service/ledger_account.rb
|
82
85
|
- lib/moneybird/service/product.rb
|
83
86
|
- lib/moneybird/service/recurring_sales_invoice.rb
|
84
87
|
- lib/moneybird/service/sales_invoice.rb
|
@@ -86,10 +89,13 @@ files:
|
|
86
89
|
- lib/moneybird/service/webhook.rb
|
87
90
|
- lib/moneybird/service/workflow.rb
|
88
91
|
- lib/moneybird/traits/administration_service.rb
|
92
|
+
- lib/moneybird/traits/delete.rb
|
93
|
+
- lib/moneybird/traits/find.rb
|
89
94
|
- lib/moneybird/traits/find_all.rb
|
90
95
|
- lib/moneybird/traits/save.rb
|
91
96
|
- lib/moneybird/traits/service.rb
|
92
97
|
- lib/moneybird/version.rb
|
98
|
+
- lib/moneybird/webhook.rb
|
93
99
|
- moneybird.gemspec
|
94
100
|
homepage: https://github.com/maartenvanvliet/moneybird
|
95
101
|
licenses:
|