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.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +26 -0
  3. data/.forgejo/workflows/release.yml +56 -0
  4. data/.forgejo/workflows/ruby.yml +37 -0
  5. data/.gitignore +10 -0
  6. data/.kick +17 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +1156 -0
  9. data/CODE_OF_CONDUCT.md +49 -0
  10. data/Gemfile +11 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +110 -0
  13. data/Rakefile +11 -0
  14. data/bin/console +13 -0
  15. data/bin/setup +8 -0
  16. data/lib/moneybird/client.rb +80 -0
  17. data/lib/moneybird/http_error/authorization_required.rb +8 -0
  18. data/lib/moneybird/http_error/bad_request.rb +8 -0
  19. data/lib/moneybird/http_error/forbidden.rb +8 -0
  20. data/lib/moneybird/http_error/internal_server_error.rb +8 -0
  21. data/lib/moneybird/http_error/method_not_allowed.rb +8 -0
  22. data/lib/moneybird/http_error/not_accepted.rb +8 -0
  23. data/lib/moneybird/http_error/not_found.rb +8 -0
  24. data/lib/moneybird/http_error/payment_required.rb +8 -0
  25. data/lib/moneybird/http_error/too_many_requests.rb +8 -0
  26. data/lib/moneybird/http_error/unprocessable_entity.rb +8 -0
  27. data/lib/moneybird/middleware/error_handling.rb +29 -0
  28. data/lib/moneybird/middleware/pagination/links.rb +19 -0
  29. data/lib/moneybird/middleware/pagination.rb +31 -0
  30. data/lib/moneybird/oauth.rb +91 -0
  31. data/lib/moneybird/resource/administration.rb +101 -0
  32. data/lib/moneybird/resource/contact.rb +75 -0
  33. data/lib/moneybird/resource/custom_field.rb +18 -0
  34. data/lib/moneybird/resource/document_style.rb +35 -0
  35. data/lib/moneybird/resource/documents/general_document.rb +27 -0
  36. data/lib/moneybird/resource/documents/general_journal_document.rb +28 -0
  37. data/lib/moneybird/resource/documents/purchase_invoice.rb +57 -0
  38. data/lib/moneybird/resource/documents/receipt.rb +57 -0
  39. data/lib/moneybird/resource/documents/typeless_document.rb +28 -0
  40. data/lib/moneybird/resource/estimate.rb +64 -0
  41. data/lib/moneybird/resource/external_sales_invoice.rb +61 -0
  42. data/lib/moneybird/resource/financial_account.rb +23 -0
  43. data/lib/moneybird/resource/financial_mutation.rb +39 -0
  44. data/lib/moneybird/resource/generic/event.rb +19 -0
  45. data/lib/moneybird/resource/generic/note.rb +25 -0
  46. data/lib/moneybird/resource/identity.rb +31 -0
  47. data/lib/moneybird/resource/invoice/details.rb +29 -0
  48. data/lib/moneybird/resource/invoice/payment.rb +26 -0
  49. data/lib/moneybird/resource/ledger_account.rb +19 -0
  50. data/lib/moneybird/resource/product.rb +21 -0
  51. data/lib/moneybird/resource/recurring_sales_invoice.rb +62 -0
  52. data/lib/moneybird/resource/sales_invoice.rb +98 -0
  53. data/lib/moneybird/resource/synchronization.rb +15 -0
  54. data/lib/moneybird/resource/tax_rate.rb +21 -0
  55. data/lib/moneybird/resource/webhook.rb +24 -0
  56. data/lib/moneybird/resource/workflow.rb +24 -0
  57. data/lib/moneybird/resource.rb +126 -0
  58. data/lib/moneybird/service/administration.rb +29 -0
  59. data/lib/moneybird/service/contact.rb +27 -0
  60. data/lib/moneybird/service/custom_field.rb +19 -0
  61. data/lib/moneybird/service/document_style.rb +19 -0
  62. data/lib/moneybird/service/documents/general_document.rb +23 -0
  63. data/lib/moneybird/service/documents/general_journal_document.rb +23 -0
  64. data/lib/moneybird/service/documents/purchase_invoice.rb +23 -0
  65. data/lib/moneybird/service/documents/receipt.rb +23 -0
  66. data/lib/moneybird/service/documents/typeless_document.rb +23 -0
  67. data/lib/moneybird/service/estimate.rb +23 -0
  68. data/lib/moneybird/service/external_sales_invoice.rb +22 -0
  69. data/lib/moneybird/service/financial_account.rb +19 -0
  70. data/lib/moneybird/service/financial_mutation.rb +24 -0
  71. data/lib/moneybird/service/identity.rb +22 -0
  72. data/lib/moneybird/service/ledger_account.rb +22 -0
  73. data/lib/moneybird/service/payment.rb +21 -0
  74. data/lib/moneybird/service/product.rb +22 -0
  75. data/lib/moneybird/service/recurring_sales_invoice.rb +23 -0
  76. data/lib/moneybird/service/sales_invoice.rb +26 -0
  77. data/lib/moneybird/service/tax_rate.rb +19 -0
  78. data/lib/moneybird/service/webhook.rb +21 -0
  79. data/lib/moneybird/service/workflow.rb +19 -0
  80. data/lib/moneybird/token.rb +20 -0
  81. data/lib/moneybird/traits/administration_service.rb +16 -0
  82. data/lib/moneybird/traits/delete.rb +12 -0
  83. data/lib/moneybird/traits/download_pdf.rb +11 -0
  84. data/lib/moneybird/traits/find.rb +11 -0
  85. data/lib/moneybird/traits/find_all.rb +51 -0
  86. data/lib/moneybird/traits/mark_as_uncollectible.rb +17 -0
  87. data/lib/moneybird/traits/save.rb +26 -0
  88. data/lib/moneybird/traits/send_invoice.rb +17 -0
  89. data/lib/moneybird/traits/service.rb +15 -0
  90. data/lib/moneybird/traits/synchronization.rb +13 -0
  91. data/lib/moneybird/version.rb +5 -0
  92. data/lib/moneybird/webhook.rb +31 -0
  93. data/lib/moneybird.rb +115 -0
  94. data/moneybird.gemspec +37 -0
  95. metadata +235 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e4097570c41bf52d470a8e72fa08fd8b7de0b23cf37a7a99f21b6489a0ba8ea7
4
+ data.tar.gz: 1de781cf1f61a57cdd09c3c17f8a7200ac2f6f6252f45f83b5255382da1c990c
5
+ SHA512:
6
+ metadata.gz: 93350597b1a2e20c1b4f5bbb0f49064154da6aff49c4d2b9b3faa54687fc12d9f7f0ea5624bae1c8bb84f7d328d885e3418358620612b96d3f0a28f2f7b8f50a
7
+ data.tar.gz: 363aba51551a10a2c2930cc431f70086d5c8c1a8f52a1463fffd69c497d406ab29e8140238e1f259d6481d69c425d06893b863de58741a6a1749d3b330dc291c
data/.codeclimate.yml ADDED
@@ -0,0 +1,26 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ - javascript
9
+ - python
10
+ - php
11
+ fixme:
12
+ enabled: true
13
+ rubocop:
14
+ enabled: true
15
+ ratings:
16
+ paths:
17
+ - "**.inc"
18
+ - "**.js"
19
+ - "**.jsx"
20
+ - "**.module"
21
+ - "**.php"
22
+ - "**.py"
23
+ - "**.rb"
24
+ exclude_paths:
25
+ - spec/
26
+
@@ -0,0 +1,56 @@
1
+ name: Release Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ release:
10
+ runs-on: deploy
11
+ permissions:
12
+ contents: read
13
+
14
+ steps:
15
+ - name: Checkout
16
+ uses: https://code.forgejo.org/actions/checkout@v4
17
+
18
+ - name: Set up Ruby
19
+ uses: https://github.com/ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: '3.4'
22
+
23
+ - name: Verify tag matches gem version
24
+ env:
25
+ REF_NAME: ${{ forge.ref_name }}
26
+ run: |
27
+ version="$(ruby -I lib -e 'require "moneybird/version"; puts Moneybird::VERSION')"
28
+ if [ "${REF_NAME#v}" != "$version" ]; then
29
+ echo "tag ${REF_NAME} does not match gem version ${version}"
30
+ exit 1
31
+ fi
32
+
33
+ - name: Install dependencies
34
+ run: bundle install --jobs 4 --retry 3
35
+
36
+ - name: Run tests
37
+ run: bundle exec rake
38
+
39
+ - name: Build gem
40
+ run: gem build moneybird.gemspec
41
+
42
+ - name: Configure RubyGems credentials
43
+ env:
44
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
45
+ run: |
46
+ mkdir -p ~/.gem
47
+ cat > ~/.gem/credentials <<EOF
48
+ ---
49
+ :rubygems_api_key: ${RUBYGEMS_API_KEY}
50
+ EOF
51
+ chmod 0600 ~/.gem/credentials
52
+
53
+ - name: Publish gem
54
+ run: |
55
+ version="$(ruby -I lib -e 'require "moneybird/version"; puts Moneybird::VERSION')"
56
+ gem push "moneybird-client-${version}.gem"
@@ -0,0 +1,37 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: ['**']
6
+ pull_request:
7
+
8
+ jobs:
9
+ test:
10
+ runs-on: checks
11
+
12
+ strategy:
13
+ matrix:
14
+ ruby_version: [3.1, 3.2, 3.3, 3.4]
15
+
16
+ steps:
17
+ - uses: https://data.forgejo.org/actions/checkout@v4
18
+
19
+ - name: Set up Ruby
20
+ uses: https://github.com/ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby_version }}
23
+
24
+ - name: Exclude coverage group
25
+ if: matrix.ruby_version != '3.4'
26
+ run: bundle config set without coverage
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ gem install bundler
31
+ bundle install --jobs 4 --retry 3
32
+
33
+ - name: Build and test with Rake
34
+ env:
35
+ CI: true
36
+ COVERAGE: ${{ matrix.ruby_version == '3.4' && 'true' || '' }}
37
+ run: bundle exec rake
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /.idea/
data/.kick ADDED
@@ -0,0 +1,17 @@
1
+ require 'set'
2
+
3
+ process do |file, flags|
4
+ test_files = Set.new
5
+ case file
6
+ when %r(^spec/.*_spec.rb$)
7
+ test_files << file
8
+ when %r(^lib/(.*).rb)
9
+ test_files << 'spec/lib/' + $1 + '_spec.rb'
10
+ end
11
+
12
+ test_files = test_files.select { |filename| File.exist?(filename) }
13
+
14
+ unless test_files.empty?
15
+ watcher.execute("rake test TEST=#{test_files.to_a.join(' ')}")
16
+ end
17
+ end
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color