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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/lib/moneybird.rb +9 -17
  4. data/lib/moneybird/client.rb +39 -34
  5. data/lib/moneybird/http_error/authorization_required.rb +6 -0
  6. data/lib/moneybird/http_error/bad_request.rb +6 -0
  7. data/lib/moneybird/http_error/forbidden.rb +6 -0
  8. data/lib/moneybird/http_error/internal_server_error.rb +6 -0
  9. data/lib/moneybird/http_error/method_not_allowed.rb +6 -0
  10. data/lib/moneybird/http_error/not_accepted.rb +6 -0
  11. data/lib/moneybird/http_error/not_found.rb +6 -0
  12. data/lib/moneybird/http_error/payment_required.rb +6 -0
  13. data/lib/moneybird/http_error/too_many_requests.rb +6 -0
  14. data/lib/moneybird/http_error/unprocessable_entity.rb +6 -0
  15. data/lib/moneybird/middleware/error_handling.rb +25 -0
  16. data/lib/moneybird/middleware/pagination.rb +29 -0
  17. data/lib/moneybird/middleware/pagination/links.rb +17 -0
  18. data/lib/moneybird/resource.rb +0 -1
  19. data/lib/moneybird/resource/administration.rb +20 -0
  20. data/lib/moneybird/resource/contact.rb +30 -29
  21. data/lib/moneybird/resource/documents/general_document.rb +25 -0
  22. data/lib/moneybird/resource/documents/general_journal_document.rb +26 -0
  23. data/lib/moneybird/resource/documents/purchase_invoice.rb +49 -0
  24. data/lib/moneybird/resource/documents/receipt.rb +35 -0
  25. data/lib/moneybird/resource/documents/typeless_document.rb +26 -0
  26. data/lib/moneybird/resource/estimate.rb +24 -23
  27. data/lib/moneybird/resource/financial_mutation.rb +14 -12
  28. data/lib/moneybird/resource/purchase_invoice.rb +1 -0
  29. data/lib/moneybird/resource/sales_invoice.rb +1 -0
  30. data/lib/moneybird/resource/synchronization.rb +13 -0
  31. data/lib/moneybird/service/administration.rb +6 -4
  32. data/lib/moneybird/service/contact.rb +7 -8
  33. data/lib/moneybird/service/document_style.rb +2 -0
  34. data/lib/moneybird/service/documents/general_document.rb +21 -0
  35. data/lib/moneybird/service/documents/general_journal_document.rb +21 -0
  36. data/lib/moneybird/service/documents/purchase_invoice.rb +21 -0
  37. data/lib/moneybird/service/documents/receipt.rb +21 -0
  38. data/lib/moneybird/service/documents/typeless_document.rb +21 -0
  39. data/lib/moneybird/service/estimate.rb +3 -0
  40. data/lib/moneybird/service/financial_account.rb +2 -0
  41. data/lib/moneybird/service/financial_mutation.rb +3 -0
  42. data/lib/moneybird/service/identity.rb +2 -0
  43. data/lib/moneybird/service/ledger_account.rb +2 -0
  44. data/lib/moneybird/service/product.rb +2 -0
  45. data/lib/moneybird/service/purchase_invoice.rb +2 -0
  46. data/lib/moneybird/service/recurring_sales_invoice.rb +3 -0
  47. data/lib/moneybird/service/sales_invoice.rb +3 -0
  48. data/lib/moneybird/service/tax_rate.rb +2 -0
  49. data/lib/moneybird/service/webhook.rb +2 -0
  50. data/lib/moneybird/service/workflow.rb +2 -0
  51. data/lib/moneybird/traits/delete.rb +0 -6
  52. data/lib/moneybird/traits/find.rb +1 -7
  53. data/lib/moneybird/traits/find_all.rb +33 -7
  54. data/lib/moneybird/traits/save.rb +10 -27
  55. data/lib/moneybird/traits/service.rb +1 -3
  56. data/lib/moneybird/traits/synchronization.rb +11 -0
  57. data/lib/moneybird/version.rb +1 -1
  58. data/moneybird.gemspec +3 -1
  59. metadata +69 -2
@@ -0,0 +1,26 @@
1
+ module Moneybird::Resource::Documents
2
+ class GeneralJournalDocument
3
+ include Moneybird::Resource
4
+ extend Moneybird::Resource::ClassMethods
5
+
6
+ has_attributes %i(
7
+ id
8
+ administration_id
9
+ contact
10
+ contact_id
11
+ reference
12
+ date
13
+ due_date
14
+ entry_number
15
+ state
16
+ exchange_rate
17
+ created_at
18
+ updated_at
19
+ version
20
+ notes
21
+ attachments
22
+ events
23
+ general_journal_document_entries
24
+ )
25
+ end
26
+ end
@@ -0,0 +1,49 @@
1
+ module Moneybird::Resource::Documents
2
+ class PurchaseInvoice
3
+ include Moneybird::Resource
4
+ extend Moneybird::Resource::ClassMethods
5
+
6
+ has_attributes %i(
7
+ id
8
+ administration_id
9
+ contact
10
+ contact_id
11
+ reference
12
+ date
13
+ due_date
14
+ entry_number
15
+ state
16
+ exchange_rate
17
+ created_at
18
+ updated_at
19
+ version
20
+ notes
21
+ attachments
22
+ events
23
+ currency
24
+ revenue_invoice
25
+ prices_are_incl_tax
26
+ origin
27
+ paid_at
28
+ tax_number
29
+ total_price_excl_tax
30
+ total_price_excl_tax_base
31
+ total_price_incl_tax
32
+ total_price_incl_tax_base
33
+ details
34
+ payments
35
+ currency
36
+ revenue_invoice
37
+ prices_are_incl_tax
38
+ origin
39
+ paid_at
40
+ tax_number
41
+ total_price_excl_tax
42
+ total_price_excl_tax_base
43
+ total_price_incl_tax
44
+ total_price_incl_tax_base
45
+ details
46
+ payments
47
+ )
48
+ end
49
+ end
@@ -0,0 +1,35 @@
1
+ module Moneybird::Resource::Documents
2
+ class Receipt
3
+ include Moneybird::Resource
4
+ extend Moneybird::Resource::ClassMethods
5
+
6
+ has_attributes %i(
7
+ id
8
+ administration_id
9
+ currency
10
+ revenue_invoice
11
+ prices_are_incl_tax
12
+ origin
13
+ paid_at
14
+ tax_number
15
+ total_price_excl_tax
16
+ total_price_excl_tax_base
17
+ total_price_incl_tax
18
+ total_price_incl_tax_base
19
+ details
20
+ payments
21
+ currency
22
+ revenue_invoice
23
+ prices_are_incl_tax
24
+ origin
25
+ paid_at
26
+ tax_number
27
+ total_price_excl_tax
28
+ total_price_excl_tax_base
29
+ total_price_incl_tax
30
+ total_price_incl_tax_base
31
+ details
32
+ payments
33
+ )
34
+ end
35
+ end
@@ -0,0 +1,26 @@
1
+ module Moneybird::Resource::Documents
2
+ class TypelessDocument
3
+ include Moneybird::Resource
4
+ extend Moneybird::Resource::ClassMethods
5
+
6
+ has_attributes %i(
7
+ id
8
+ administration_id
9
+ contact
10
+ contact_id
11
+ reference
12
+ date
13
+ due_date
14
+ entry_number
15
+ state
16
+ exchange_rate
17
+ created_at
18
+ updated_at
19
+ version
20
+ notes
21
+ attachments
22
+ events
23
+ origin
24
+ )
25
+ end
26
+ end
@@ -4,46 +4,47 @@ module Moneybird::Resource
4
4
  extend Moneybird::Resource::ClassMethods
5
5
 
6
6
  has_attributes %i(
7
- id
7
+ accepted_at
8
8
  administration_id
9
- contact_id
9
+ archived_at
10
+ attachments
10
11
  contact
12
+ contact_id
13
+ created_at
14
+ currency
15
+ custom_fields
11
16
  details
17
+ discount
18
+ document_style_id
12
19
  draft_id
20
+ due_date
21
+ estimate_date
13
22
  estimate_id
14
- workflow_id
15
- document_style_id
23
+ events
24
+ exchange_rate
25
+ id
16
26
  identity_id
17
- state
18
- estimate_date
19
- due_date
20
- reference
21
27
  language
22
- currency
23
- exchange_rate
24
- discount
28
+ notes
25
29
  original_estimate_id
30
+ post_text
31
+ pre_text
32
+ reference
33
+ rejected_at
34
+ sent_at
26
35
  show_tax
27
36
  sign_online
28
- sent_at
29
- accepted_at
30
- rejected_at
31
- archived_at
32
- created_at
33
- updated_at
37
+ state
34
38
  tax_totals
35
39
  total_discount
36
- pre_text
37
- post_text
38
40
  total_price_excl_tax
39
41
  total_price_excl_tax_base
40
42
  total_price_incl_tax
41
43
  total_price_incl_tax_base
44
+ updated_at
42
45
  url
43
- custom_fields
44
- notes
45
- attachments
46
- events
46
+ version
47
+ workflow_id
47
48
  )
48
49
 
49
50
  def notes=(notes)
@@ -4,27 +4,29 @@ module Moneybird::Resource
4
4
  extend Moneybird::Resource::ClassMethods
5
5
 
6
6
  has_attributes %i(
7
- id
7
+ account_servicer_transaction_id
8
8
  administration_id
9
9
  amount
10
+ amount_open
11
+ batch_reference
10
12
  code
11
- date
12
- message
13
13
  contra_account_name
14
14
  contra_account_number
15
- state
16
- amount_open
17
- sepa_fields
18
- batch_reference
19
- financial_account_id
15
+ created_at
20
16
  currency
21
- original_amount
17
+ date
18
+ financial_account_id
22
19
  financial_statement_id
23
- processed_at
24
- payments
20
+ id
25
21
  ledger_account_bookings
26
- created_at
22
+ message
23
+ original_amount
24
+ payments
25
+ processed_at
26
+ sepa_fields
27
+ state
27
28
  updated_at
29
+ version
28
30
  )
29
31
  end
30
32
  end
@@ -31,6 +31,7 @@ module Moneybird::Resource
31
31
  total_price_incl_tax
32
32
  total_price_incl_tax_base
33
33
  updated_at
34
+ version
34
35
  )
35
36
 
36
37
  def notes=(notes)
@@ -42,6 +42,7 @@ module Moneybird::Resource
42
42
  total_unpaid_base
43
43
  updated_at
44
44
  url
45
+ version
45
46
  workflow_id
46
47
  events
47
48
  )
@@ -0,0 +1,13 @@
1
+ module Moneybird
2
+ module Resource
3
+ class Synchronization
4
+ include Moneybird::Resource
5
+ extend Moneybird::Resource::ClassMethods
6
+
7
+ has_attributes %i(
8
+ id
9
+ version
10
+ )
11
+ end
12
+ end
13
+ end
@@ -9,14 +9,16 @@ module Moneybird::Service
9
9
  @client = client
10
10
  end
11
11
 
12
- def resource_class
13
- Moneybird::Resource::Administration
14
- end
15
-
16
12
  def find(id)
17
13
  all.find{ |administration| administration.id.to_i == id }
18
14
  end
19
15
 
16
+ private
17
+
18
+ def resource_class
19
+ Moneybird::Resource::Administration
20
+ end
21
+
20
22
  def path
21
23
  '/administrations'
22
24
  end
@@ -6,6 +6,13 @@ module Moneybird::Service
6
6
  include Moneybird::Traits::FindAll
7
7
  include Moneybird::Traits::Save
8
8
  include Moneybird::Traits::Delete
9
+ include Moneybird::Traits::Synchronization
10
+
11
+ def find_by_customer_id(customer_id)
12
+ build client.get("#{path}/customer_id/#{customer_id}")
13
+ end
14
+
15
+ private
9
16
 
10
17
  def resource_class
11
18
  Moneybird::Resource::Contact
@@ -14,13 +21,5 @@ module Moneybird::Service
14
21
  def path
15
22
  "#{administration_id}/contacts"
16
23
  end
17
-
18
- def find_by_customer_id(customer_id)
19
- result = client.get("#{path}/customer_id/#{customer_id}")
20
-
21
- if result.status.to_i == GET_SUCCESS_CODE
22
- build(JSON.parse(result.body))
23
- end
24
- end
25
24
  end
26
25
  end
@@ -4,6 +4,8 @@ module Moneybird::Service
4
4
  include Moneybird::Traits::Service
5
5
  include Moneybird::Traits::FindAll
6
6
 
7
+ private
8
+
7
9
  def resource_class
8
10
  Moneybird::Resource::DocumentStyle
9
11
  end
@@ -0,0 +1,21 @@
1
+ module Moneybird::Service::Document
2
+ class GeneralDocument
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
+ include Moneybird::Traits::Synchronization
10
+
11
+ private
12
+
13
+ def resource_class
14
+ Moneybird::Resource::Documents::GeneralDocument
15
+ end
16
+
17
+ def path
18
+ "#{administration_id}/documents/general_documents"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module Moneybird::Service::Document
2
+ class GeneralJournalDocument
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
+ include Moneybird::Traits::Synchronization
10
+
11
+ private
12
+
13
+ def resource_class
14
+ Moneybird::Resource::Documents::GeneralJournalDocument
15
+ end
16
+
17
+ def path
18
+ "#{administration_id}/documents/general_journal_documents"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module Moneybird::Service::Document
2
+ class PurchaseInvoice
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
+ include Moneybird::Traits::Synchronization
10
+
11
+ private
12
+
13
+ def resource_class
14
+ Moneybird::Resource::Documents::Receipt
15
+ end
16
+
17
+ def path
18
+ "#{administration_id}/documents/purchase_invoices"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module Moneybird::Service::Document
2
+ class Receipt
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
+ include Moneybird::Traits::Synchronization
10
+
11
+ private
12
+
13
+ def resource_class
14
+ Moneybird::Resource::Documents::Receipt
15
+ end
16
+
17
+ def path
18
+ "#{administration_id}/documents/receipts"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module Moneybird::Service::Document
2
+ class TypelessDocument
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
+ include Moneybird::Traits::Synchronization
10
+
11
+ private
12
+
13
+ def resource_class
14
+ Moneybird::Resource::Documents::TypelessDocument
15
+ end
16
+
17
+ def path
18
+ "#{administration_id}/documents/typeless_documents"
19
+ end
20
+ end
21
+ end