moneybird-client 0.12.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 +7 -0
- data/.codeclimate.yml +26 -0
- data/.forgejo/workflows/release.yml +56 -0
- data/.forgejo/workflows/ruby.yml +37 -0
- data/.gitignore +10 -0
- data/.kick +17 -0
- data/.rspec +2 -0
- data/.rubocop.yml +1156 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +11 -0
- data/LICENSE.txt +21 -0
- data/README.md +110 -0
- data/Rakefile +11 -0
- data/bin/console +13 -0
- data/bin/setup +8 -0
- data/lib/moneybird/client.rb +80 -0
- data/lib/moneybird/http_error/authorization_required.rb +8 -0
- data/lib/moneybird/http_error/bad_request.rb +8 -0
- data/lib/moneybird/http_error/forbidden.rb +8 -0
- data/lib/moneybird/http_error/internal_server_error.rb +8 -0
- data/lib/moneybird/http_error/method_not_allowed.rb +8 -0
- data/lib/moneybird/http_error/not_accepted.rb +8 -0
- data/lib/moneybird/http_error/not_found.rb +8 -0
- data/lib/moneybird/http_error/payment_required.rb +8 -0
- data/lib/moneybird/http_error/too_many_requests.rb +8 -0
- data/lib/moneybird/http_error/unprocessable_entity.rb +8 -0
- data/lib/moneybird/middleware/error_handling.rb +29 -0
- data/lib/moneybird/middleware/pagination/links.rb +19 -0
- data/lib/moneybird/middleware/pagination.rb +31 -0
- data/lib/moneybird/oauth.rb +91 -0
- data/lib/moneybird/resource/administration.rb +101 -0
- data/lib/moneybird/resource/contact.rb +75 -0
- data/lib/moneybird/resource/custom_field.rb +18 -0
- data/lib/moneybird/resource/document_style.rb +35 -0
- data/lib/moneybird/resource/documents/general_document.rb +27 -0
- data/lib/moneybird/resource/documents/general_journal_document.rb +28 -0
- data/lib/moneybird/resource/documents/purchase_invoice.rb +57 -0
- data/lib/moneybird/resource/documents/receipt.rb +57 -0
- data/lib/moneybird/resource/documents/typeless_document.rb +28 -0
- data/lib/moneybird/resource/estimate.rb +64 -0
- data/lib/moneybird/resource/external_sales_invoice.rb +61 -0
- data/lib/moneybird/resource/financial_account.rb +23 -0
- data/lib/moneybird/resource/financial_mutation.rb +39 -0
- data/lib/moneybird/resource/generic/event.rb +19 -0
- data/lib/moneybird/resource/generic/note.rb +25 -0
- data/lib/moneybird/resource/identity.rb +31 -0
- data/lib/moneybird/resource/invoice/details.rb +29 -0
- data/lib/moneybird/resource/invoice/payment.rb +26 -0
- data/lib/moneybird/resource/ledger_account.rb +19 -0
- data/lib/moneybird/resource/product.rb +21 -0
- data/lib/moneybird/resource/recurring_sales_invoice.rb +62 -0
- data/lib/moneybird/resource/sales_invoice.rb +98 -0
- data/lib/moneybird/resource/synchronization.rb +15 -0
- data/lib/moneybird/resource/tax_rate.rb +21 -0
- data/lib/moneybird/resource/webhook.rb +24 -0
- data/lib/moneybird/resource/workflow.rb +24 -0
- data/lib/moneybird/resource.rb +126 -0
- data/lib/moneybird/service/administration.rb +29 -0
- data/lib/moneybird/service/contact.rb +27 -0
- data/lib/moneybird/service/custom_field.rb +19 -0
- data/lib/moneybird/service/document_style.rb +19 -0
- data/lib/moneybird/service/documents/general_document.rb +23 -0
- data/lib/moneybird/service/documents/general_journal_document.rb +23 -0
- data/lib/moneybird/service/documents/purchase_invoice.rb +23 -0
- data/lib/moneybird/service/documents/receipt.rb +23 -0
- data/lib/moneybird/service/documents/typeless_document.rb +23 -0
- data/lib/moneybird/service/estimate.rb +23 -0
- data/lib/moneybird/service/external_sales_invoice.rb +22 -0
- data/lib/moneybird/service/financial_account.rb +19 -0
- data/lib/moneybird/service/financial_mutation.rb +24 -0
- data/lib/moneybird/service/identity.rb +22 -0
- data/lib/moneybird/service/ledger_account.rb +22 -0
- data/lib/moneybird/service/payment.rb +21 -0
- data/lib/moneybird/service/product.rb +22 -0
- data/lib/moneybird/service/recurring_sales_invoice.rb +23 -0
- data/lib/moneybird/service/sales_invoice.rb +26 -0
- data/lib/moneybird/service/tax_rate.rb +19 -0
- data/lib/moneybird/service/webhook.rb +21 -0
- data/lib/moneybird/service/workflow.rb +19 -0
- data/lib/moneybird/token.rb +20 -0
- data/lib/moneybird/traits/administration_service.rb +16 -0
- data/lib/moneybird/traits/delete.rb +12 -0
- data/lib/moneybird/traits/download_pdf.rb +11 -0
- data/lib/moneybird/traits/find.rb +11 -0
- data/lib/moneybird/traits/find_all.rb +51 -0
- data/lib/moneybird/traits/mark_as_uncollectible.rb +17 -0
- data/lib/moneybird/traits/save.rb +26 -0
- data/lib/moneybird/traits/send_invoice.rb +17 -0
- data/lib/moneybird/traits/service.rb +15 -0
- data/lib/moneybird/traits/synchronization.rb +13 -0
- data/lib/moneybird/version.rb +5 -0
- data/lib/moneybird/webhook.rb +31 -0
- data/lib/moneybird.rb +115 -0
- data/moneybird.gemspec +37 -0
- metadata +235 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class Identity
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::Find
|
|
8
|
+
include Moneybird::Traits::FindAll
|
|
9
|
+
include Moneybird::Traits::Save
|
|
10
|
+
include Moneybird::Traits::Delete
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def resource_class
|
|
15
|
+
Moneybird::Resource::Identity
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def path
|
|
19
|
+
"#{administration_id}/identities"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class LedgerAccount
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::Find
|
|
8
|
+
include Moneybird::Traits::FindAll
|
|
9
|
+
include Moneybird::Traits::Save
|
|
10
|
+
include Moneybird::Traits::Delete
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def resource_class
|
|
15
|
+
Moneybird::Resource::LedgerAccount
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def path
|
|
19
|
+
"#{administration_id}/ledger_accounts"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class Payment
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::FindAll
|
|
8
|
+
include Moneybird::Traits::Save
|
|
9
|
+
include Moneybird::Traits::Delete
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
def resource_class
|
|
14
|
+
Moneybird::Resource::Invoice::Payment
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def path
|
|
18
|
+
"#{administration_id}/sales_invoices/#{options[:invoice_id]}/payments"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class Product
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::Find
|
|
8
|
+
include Moneybird::Traits::FindAll
|
|
9
|
+
include Moneybird::Traits::Save
|
|
10
|
+
include Moneybird::Traits::Delete
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def resource_class
|
|
15
|
+
Moneybird::Resource::Product
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def path
|
|
19
|
+
"#{administration_id}/products"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class RecurringSalesInvoice
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::Find
|
|
8
|
+
include Moneybird::Traits::FindAll
|
|
9
|
+
include Moneybird::Traits::Save
|
|
10
|
+
include Moneybird::Traits::Delete
|
|
11
|
+
include Moneybird::Traits::Synchronization
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def resource_class
|
|
16
|
+
Moneybird::Resource::RecurringSalesInvoice
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def path
|
|
20
|
+
"#{administration_id}/recurring_sales_invoices"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class SalesInvoice
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::Find
|
|
8
|
+
include Moneybird::Traits::FindAll
|
|
9
|
+
include Moneybird::Traits::Save
|
|
10
|
+
include Moneybird::Traits::Delete
|
|
11
|
+
include Moneybird::Traits::Synchronization
|
|
12
|
+
include Moneybird::Traits::DownloadPdf
|
|
13
|
+
include Moneybird::Traits::SendInvoice
|
|
14
|
+
include Moneybird::Traits::MarkAsUncollectible
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def resource_class
|
|
19
|
+
Moneybird::Resource::SalesInvoice
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def path
|
|
23
|
+
"#{administration_id}/sales_invoices"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class TaxRate
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::FindAll
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def resource_class
|
|
12
|
+
Moneybird::Resource::TaxRate
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path
|
|
16
|
+
"#{administration_id}/tax_rates"
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class Webhook
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::FindAll
|
|
8
|
+
include Moneybird::Traits::Delete
|
|
9
|
+
include Moneybird::Traits::Save
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
def resource_class
|
|
14
|
+
Moneybird::Resource::Webhook
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def path
|
|
18
|
+
"#{administration_id}/webhooks"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird::Service
|
|
4
|
+
class Workflow
|
|
5
|
+
include Moneybird::Traits::AdministrationService
|
|
6
|
+
include Moneybird::Traits::Service
|
|
7
|
+
include Moneybird::Traits::FindAll
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def resource_class
|
|
12
|
+
Moneybird::Resource::Workflow
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def path
|
|
16
|
+
"#{administration_id}/workflows"
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
class Token
|
|
5
|
+
attr_reader :access_token, :refresh_token, :token_type, :scope, :created_at
|
|
6
|
+
|
|
7
|
+
def initialize(access_token:, refresh_token: nil, token_type: "bearer", scope: nil, created_at: nil)
|
|
8
|
+
@access_token = access_token
|
|
9
|
+
@refresh_token = refresh_token
|
|
10
|
+
@token_type = token_type
|
|
11
|
+
@scope = scope
|
|
12
|
+
@created_at = created_at.is_a?(Numeric) ? Time.at(created_at) : created_at
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Create a Client from this token
|
|
16
|
+
def client
|
|
17
|
+
Client.new(access_token)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
module Traits
|
|
5
|
+
module AdministrationService
|
|
6
|
+
attr_reader :client, :administration_id, :preloaded_data, :options
|
|
7
|
+
|
|
8
|
+
def initialize(client, administration_id, options = {})
|
|
9
|
+
@client = client
|
|
10
|
+
@administration_id = administration_id
|
|
11
|
+
@preloaded_data = options.delete(:preloaded_data)
|
|
12
|
+
@options = options
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
module Traits
|
|
5
|
+
module FindAll
|
|
6
|
+
def all(params = {})
|
|
7
|
+
each(params).to_a
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def each_page(params = {})
|
|
11
|
+
return enum_for(:each_page, params) unless block_given?
|
|
12
|
+
client.get_each_page(path, params).map do |resources|
|
|
13
|
+
yield resources.map { |resource| build resource }
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def each(params = {})
|
|
18
|
+
return enum_for(:each, params) unless block_given?
|
|
19
|
+
if preloaded_data
|
|
20
|
+
preloaded_data.each do |data|
|
|
21
|
+
yield data
|
|
22
|
+
end
|
|
23
|
+
else
|
|
24
|
+
each_page(params).each do |resources|
|
|
25
|
+
resources.each do |resource|
|
|
26
|
+
yield resource
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def first_page(params = {})
|
|
33
|
+
client.get(path, params).map do |resource|
|
|
34
|
+
build resource
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def first(params = {})
|
|
39
|
+
params = { per_page: 1 }.merge params
|
|
40
|
+
build client.get(path, params).first
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def map(params = {})
|
|
44
|
+
return enum_for(:map, params) unless block_given?
|
|
45
|
+
each(params).map do |resource|
|
|
46
|
+
yield resource
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
module Traits
|
|
5
|
+
module MarkAsUncollectible
|
|
6
|
+
def mark_as_uncollectible_path(resource)
|
|
7
|
+
[path, resource.path, '/mark_as_uncollectible'].join('')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def mark_as_uncollectible(resource, options = {})
|
|
11
|
+
response = client.patch(mark_as_uncollectible_path(resource), options.to_json)
|
|
12
|
+
resource.attributes = response
|
|
13
|
+
resource
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
module Traits
|
|
5
|
+
module Save
|
|
6
|
+
def save(resource)
|
|
7
|
+
response =
|
|
8
|
+
if resource.persisted?
|
|
9
|
+
client.patch(resource_path(resource), resource.to_json)
|
|
10
|
+
else
|
|
11
|
+
client.post(resource_path(resource), resource.to_json)
|
|
12
|
+
end
|
|
13
|
+
resource.attributes = response
|
|
14
|
+
resource
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def create(attributes)
|
|
18
|
+
build(attributes).tap do |resource|
|
|
19
|
+
save(resource)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
alias update create
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
module Traits
|
|
5
|
+
module SendInvoice
|
|
6
|
+
def send_invoice_path(resource)
|
|
7
|
+
[path, resource.path, '/send_invoice'].join('')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def send_invoice(resource, options = {})
|
|
11
|
+
response = client.patch(send_invoice_path(resource), options.to_json)
|
|
12
|
+
resource.attributes = response
|
|
13
|
+
resource
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
module Traits
|
|
5
|
+
module Service
|
|
6
|
+
def build(attributes)
|
|
7
|
+
resource_class.build attributes.merge(client: client)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def resource_path(resource)
|
|
11
|
+
[path, resource.path].join('')
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
module Traits
|
|
5
|
+
module Synchronization
|
|
6
|
+
def synchronization(params = {})
|
|
7
|
+
client.get("#{path}/synchronization", params).map do |resource|
|
|
8
|
+
Moneybird::Resource::Synchronization.new resource
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Moneybird
|
|
4
|
+
class Webhook
|
|
5
|
+
include Moneybird::Resource
|
|
6
|
+
extend Moneybird::Resource::ClassMethods
|
|
7
|
+
|
|
8
|
+
has_attributes %i(
|
|
9
|
+
administration_id
|
|
10
|
+
webhook_id
|
|
11
|
+
webhook_token
|
|
12
|
+
entity_type
|
|
13
|
+
entity_id
|
|
14
|
+
state
|
|
15
|
+
action
|
|
16
|
+
entity
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
def build_entity
|
|
20
|
+
entity_resource_class.new(entity) if entity
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def entity_resource_class
|
|
24
|
+
Object.const_get "Moneybird::Resource::#{entity_type}"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.from_json(payload)
|
|
28
|
+
build(JSON.parse(payload))
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/lib/moneybird.rb
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'active_support'
|
|
5
|
+
require 'active_support/core_ext/object/json'
|
|
6
|
+
require 'active_support/core_ext/string/inflections'
|
|
7
|
+
require 'faraday'
|
|
8
|
+
|
|
9
|
+
require 'logger'
|
|
10
|
+
require 'uri'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'net/http'
|
|
13
|
+
|
|
14
|
+
module Moneybird
|
|
15
|
+
module HttpError; end
|
|
16
|
+
module Middleware; end
|
|
17
|
+
module Service; end
|
|
18
|
+
module Traits; end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
require 'moneybird/resource'
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# Http Errors
|
|
25
|
+
require 'moneybird/http_error/authorization_required'
|
|
26
|
+
require 'moneybird/http_error/bad_request'
|
|
27
|
+
require 'moneybird/http_error/forbidden'
|
|
28
|
+
require 'moneybird/http_error/internal_server_error'
|
|
29
|
+
require 'moneybird/http_error/method_not_allowed'
|
|
30
|
+
require 'moneybird/http_error/not_accepted'
|
|
31
|
+
require 'moneybird/http_error/not_found'
|
|
32
|
+
require 'moneybird/http_error/payment_required'
|
|
33
|
+
require 'moneybird/http_error/too_many_requests'
|
|
34
|
+
require 'moneybird/http_error/unprocessable_entity'
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Middleware
|
|
38
|
+
require 'moneybird/middleware/error_handling' # Depends on http errors
|
|
39
|
+
require 'moneybird/middleware/pagination/links'
|
|
40
|
+
require 'moneybird/middleware/pagination' # Depends on links
|
|
41
|
+
|
|
42
|
+
##
|
|
43
|
+
# Resources (all depend on resource)
|
|
44
|
+
require 'moneybird/resource/documents/general_document'
|
|
45
|
+
require 'moneybird/resource/documents/general_journal_document'
|
|
46
|
+
require 'moneybird/resource/documents/purchase_invoice'
|
|
47
|
+
require 'moneybird/resource/documents/receipt'
|
|
48
|
+
require 'moneybird/resource/documents/typeless_document'
|
|
49
|
+
require 'moneybird/resource/generic/event'
|
|
50
|
+
require 'moneybird/resource/generic/note'
|
|
51
|
+
require 'moneybird/resource/invoice/details'
|
|
52
|
+
require 'moneybird/resource/invoice/payment'
|
|
53
|
+
require 'moneybird/resource/contact' # Depends on generic resources
|
|
54
|
+
require 'moneybird/resource/document_style'
|
|
55
|
+
require 'moneybird/resource/custom_field'
|
|
56
|
+
require 'moneybird/resource/estimate'
|
|
57
|
+
require 'moneybird/resource/financial_account'
|
|
58
|
+
require 'moneybird/resource/financial_mutation'
|
|
59
|
+
require 'moneybird/resource/identity'
|
|
60
|
+
require 'moneybird/resource/ledger_account'
|
|
61
|
+
require 'moneybird/resource/product'
|
|
62
|
+
require 'moneybird/resource/recurring_sales_invoice' # Depends on generic and invoice resources
|
|
63
|
+
require 'moneybird/resource/sales_invoice' # Depends on generic and invoice resources
|
|
64
|
+
require 'moneybird/resource/external_sales_invoice'
|
|
65
|
+
require 'moneybird/resource/synchronization'
|
|
66
|
+
require 'moneybird/resource/tax_rate'
|
|
67
|
+
require 'moneybird/resource/webhook'
|
|
68
|
+
require 'moneybird/resource/workflow'
|
|
69
|
+
|
|
70
|
+
##
|
|
71
|
+
# Traits
|
|
72
|
+
require 'moneybird/traits/administration_service'
|
|
73
|
+
require 'moneybird/traits/delete'
|
|
74
|
+
require 'moneybird/traits/download_pdf'
|
|
75
|
+
require 'moneybird/traits/find'
|
|
76
|
+
require 'moneybird/traits/find_all'
|
|
77
|
+
require 'moneybird/traits/mark_as_uncollectible'
|
|
78
|
+
require 'moneybird/traits/save'
|
|
79
|
+
require 'moneybird/traits/send_invoice'
|
|
80
|
+
require 'moneybird/traits/service'
|
|
81
|
+
require 'moneybird/traits/synchronization' # Depends on synchronization resource
|
|
82
|
+
|
|
83
|
+
##
|
|
84
|
+
# Services (all depend on traits and it's associated resource)
|
|
85
|
+
require 'moneybird/service/documents/general_document'
|
|
86
|
+
require 'moneybird/service/documents/general_journal_document'
|
|
87
|
+
require 'moneybird/service/documents/purchase_invoice'
|
|
88
|
+
require 'moneybird/service/documents/receipt'
|
|
89
|
+
require 'moneybird/service/documents/typeless_document'
|
|
90
|
+
require 'moneybird/service/contact'
|
|
91
|
+
require 'moneybird/service/document_style'
|
|
92
|
+
require 'moneybird/service/custom_field'
|
|
93
|
+
require 'moneybird/service/estimate'
|
|
94
|
+
require 'moneybird/service/financial_account'
|
|
95
|
+
require 'moneybird/service/financial_mutation'
|
|
96
|
+
require 'moneybird/service/identity'
|
|
97
|
+
require 'moneybird/service/ledger_account'
|
|
98
|
+
require 'moneybird/service/product'
|
|
99
|
+
require 'moneybird/service/recurring_sales_invoice'
|
|
100
|
+
require 'moneybird/service/sales_invoice'
|
|
101
|
+
require 'moneybird/service/external_sales_invoice'
|
|
102
|
+
require 'moneybird/service/tax_rate'
|
|
103
|
+
require 'moneybird/service/webhook'
|
|
104
|
+
require 'moneybird/service/workflow'
|
|
105
|
+
require 'moneybird/service/payment'
|
|
106
|
+
|
|
107
|
+
##
|
|
108
|
+
# Special cases
|
|
109
|
+
require 'moneybird/resource/administration' # Depends on services
|
|
110
|
+
require 'moneybird/service/administration' # Depends on administration resource
|
|
111
|
+
require 'moneybird/token'
|
|
112
|
+
require 'moneybird/oauth'
|
|
113
|
+
require 'moneybird/client'
|
|
114
|
+
require 'moneybird/version'
|
|
115
|
+
require 'moneybird/webhook'
|
data/moneybird.gemspec
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'moneybird/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "moneybird-client"
|
|
8
|
+
spec.version = Moneybird::VERSION
|
|
9
|
+
spec.authors = ["ramones"]
|
|
10
|
+
spec.email = ["ramonvansprundel@gmail.com"]
|
|
11
|
+
|
|
12
|
+
spec.summary = %q{Library to interface with Moneybird API}
|
|
13
|
+
spec.description = %q{Library to interface with Moneybird API: http://developer.moneybird.com/}
|
|
14
|
+
spec.homepage = "https://codeberg.org/odeva/moneybird"
|
|
15
|
+
spec.license = "MIT"
|
|
16
|
+
|
|
17
|
+
spec.required_ruby_version = ">= 3.1.0"
|
|
18
|
+
|
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
20
|
+
spec.bindir = "exe"
|
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
|
+
spec.require_paths = ["lib"]
|
|
23
|
+
|
|
24
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
25
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
|
26
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
|
27
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
28
|
+
|
|
29
|
+
spec.add_dependency "activesupport", '>= 7.0'
|
|
30
|
+
spec.add_dependency "faraday", ">= 2.0.1"
|
|
31
|
+
spec.add_dependency "link_header", "~> 0.0.8"
|
|
32
|
+
|
|
33
|
+
spec.add_development_dependency "bundler", ">= 2.0"
|
|
34
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
35
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
|
36
|
+
spec.add_development_dependency "webmock", "~> 3.1"
|
|
37
|
+
end
|