jortt 4.2.0 → 5.0.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 (41) hide show
  1. checksums.yaml +5 -5
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +1 -3
  4. data/README.md +45 -151
  5. data/Rakefile +0 -1
  6. data/jortt.gemspec +6 -6
  7. data/lib/jortt.rb +0 -1
  8. data/lib/jortt/client.rb +65 -16
  9. data/lib/jortt/client/customers.rb +56 -49
  10. data/lib/jortt/client/error.rb +33 -0
  11. data/lib/jortt/client/invoices.rb +41 -38
  12. data/lib/jortt/client/ledger_accounts.rb +27 -0
  13. data/lib/jortt/client/version.rb +1 -2
  14. data/spec/fixtures/vcr_cassettes/Jortt/_client/1_1_1.yml +64 -0
  15. data/spec/fixtures/vcr_cassettes/Jortt_Client/configured/_customers/1_1_1_1.yml +64 -0
  16. data/spec/fixtures/vcr_cassettes/Jortt_Client/configured/_invoices/1_1_2_1.yml +64 -0
  17. data/spec/fixtures/vcr_cassettes/Jortt_Client/configured/_ledger_accounts/1_1_3_1.yml +64 -0
  18. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/faulty_payload/shows_a_nice_error.yml +413 -0
  19. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/valid_payload/creates_the_customer.yml +505 -0
  20. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_delete/deletes_the_customer.yml +505 -0
  21. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_direct_debit_mandate/sends_direct_debit_mandate_to_the_customer_or_responds_with_an_error_when_not_possible.yml +470 -0
  22. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/query/returns_the_queried_customers.yml +464 -0
  23. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/without_params/returns_customers.yml +415 -0
  24. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_show/returns_the_customer.yml +464 -0
  25. data/spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_update/updates_the_customer.yml +603 -0
  26. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_create/creates_the_invoice.yml +170 -0
  27. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_download/returns_the_invoice_download_link.yml +168 -0
  28. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/invoice_status/returns_those_invoices.yml +776 -0
  29. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/query/returns_the_queried_invoices.yml +315 -0
  30. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_show/returns_the_invoice.yml +421 -0
  31. data/spec/fixtures/vcr_cassettes/Jortt_Client_LedgerAccounts/_index/returns_invoices.yml +118 -0
  32. data/spec/jortt/client/customers_spec.rb +82 -37
  33. data/spec/jortt/client/invoices_spec.rb +105 -26
  34. data/spec/jortt/client/ledger_accounts_spec.rb +19 -0
  35. data/spec/jortt/client_spec.rb +5 -27
  36. data/spec/jortt_spec.rb +2 -3
  37. data/spec/spec_helper.rb +18 -4
  38. metadata +72 -37
  39. data/.rubocop.yml +0 -26
  40. data/lib/jortt/client/invoice.rb +0 -50
  41. data/spec/jortt/client/invoice_spec.rb +0 -23
@@ -1,9 +1,8 @@
1
- # encoding: UTF-8
2
1
  require 'spec_helper'
3
2
 
4
- describe Jortt do
3
+ describe Jortt, :vcr do
5
4
  describe '.client' do
6
- subject { described_class.client(app_name: 'name', api_key: 'secret') }
5
+ subject { described_class.client(ENV['JORTT_CLIENT_ID'], ENV['JORTT_CLIENT_SECRET']) }
7
6
  it { should be_instance_of(described_class::Client) }
8
7
  end
9
8
  end
@@ -1,4 +1,9 @@
1
1
  require 'simplecov'
2
+ require 'rspec'
3
+ require 'rspec/its'
4
+ require 'webmock/rspec'
5
+ require 'vcr'
6
+ require 'jortt'
2
7
 
3
8
  SimpleCov.start
4
9
  if ENV['CI'] == 'true'
@@ -6,8 +11,17 @@ if ENV['CI'] == 'true'
6
11
  SimpleCov.formatter = SimpleCov::Formatter::Codecov
7
12
  end
8
13
 
9
- require 'rspec'
10
- require 'rspec/its'
11
- require 'webmock/rspec'
14
+ VCR.configure do |c|
15
+ c.cassette_library_dir = "spec/fixtures/vcr_cassettes"
16
+ c.hook_into :webmock
17
+ c.configure_rspec_metadata!
18
+ c.default_cassette_options = { record: :once }
12
19
 
13
- require 'jortt'
20
+ c.before_record do |i|
21
+ i.response.headers.delete('Set-Cookie')
22
+ i.request.headers.delete('Authorization')
23
+ end
24
+ end
25
+
26
+ ENV['JORTT_CLIENT_ID'] ||= 'client-id'
27
+ ENV['JORTT_CLIENT_SECRET'] ||= 'client-secret'
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jortt
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Forma
8
8
  - Michael Franken
9
9
  - Lars Vonk
10
10
  - Stephan van Diepen
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-06-26 00:00:00.000000000 Z
14
+ date: 2020-09-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
@@ -28,118 +28,118 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '2.0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: bundler
31
+ name: oauth2
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: '1.0'
37
- type: :development
36
+ version: 1.4.4
37
+ type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '1.0'
43
+ version: 1.4.4
44
44
  - !ruby/object:Gem::Dependency
45
- name: codecov
45
+ name: bundler
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: '0.1'
50
+ version: '2.0'
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '0.1'
57
+ version: '2.0'
58
58
  - !ruby/object:Gem::Dependency
59
- name: rake
59
+ name: codecov
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: '10.0'
64
+ version: '0.1'
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '10.0'
71
+ version: '0.1'
72
72
  - !ruby/object:Gem::Dependency
73
- name: rspec
73
+ name: rake
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
76
  - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: '3.4'
78
+ version: '13.0'
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - "~>"
84
84
  - !ruby/object:Gem::Version
85
- version: '3.4'
85
+ version: '13.0'
86
86
  - !ruby/object:Gem::Dependency
87
- name: rspec-its
87
+ name: rspec
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - "~>"
91
91
  - !ruby/object:Gem::Version
92
- version: '1.2'
92
+ version: '3.7'
93
93
  type: :development
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '1.2'
99
+ version: '3.7'
100
100
  - !ruby/object:Gem::Dependency
101
- name: webmock
101
+ name: rspec-its
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: '1.17'
106
+ version: '1.2'
107
107
  type: :development
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: '1.17'
113
+ version: '1.2'
114
114
  - !ruby/object:Gem::Dependency
115
- name: rubocop
115
+ name: webmock
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
118
  - - "~>"
119
119
  - !ruby/object:Gem::Version
120
- version: 0.24.1
120
+ version: '3.3'
121
121
  type: :development
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
125
  - - "~>"
126
126
  - !ruby/object:Gem::Version
127
- version: 0.24.1
127
+ version: '3.3'
128
128
  - !ruby/object:Gem::Dependency
129
- name: rubocop-rspec
129
+ name: vcr
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: '1.1'
134
+ version: '6.0'
135
135
  type: :development
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: '1.1'
142
- description:
141
+ version: '6.0'
142
+ description:
143
143
  email:
144
144
  - bforma@zilverline.com
145
145
  - mfranken@zilverline.com
@@ -150,7 +150,6 @@ extensions: []
150
150
  extra_rdoc_files: []
151
151
  files:
152
152
  - ".gitignore"
153
- - ".rubocop.yml"
154
153
  - ".ruby-version"
155
154
  - ".travis.yml"
156
155
  - Gemfile
@@ -161,12 +160,31 @@ files:
161
160
  - lib/jortt.rb
162
161
  - lib/jortt/client.rb
163
162
  - lib/jortt/client/customers.rb
164
- - lib/jortt/client/invoice.rb
163
+ - lib/jortt/client/error.rb
165
164
  - lib/jortt/client/invoices.rb
165
+ - lib/jortt/client/ledger_accounts.rb
166
166
  - lib/jortt/client/version.rb
167
+ - spec/fixtures/vcr_cassettes/Jortt/_client/1_1_1.yml
168
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_customers/1_1_1_1.yml
169
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_invoices/1_1_2_1.yml
170
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_ledger_accounts/1_1_3_1.yml
171
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/faulty_payload/shows_a_nice_error.yml
172
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/valid_payload/creates_the_customer.yml
173
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_delete/deletes_the_customer.yml
174
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_direct_debit_mandate/sends_direct_debit_mandate_to_the_customer_or_responds_with_an_error_when_not_possible.yml
175
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/query/returns_the_queried_customers.yml
176
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/without_params/returns_customers.yml
177
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_show/returns_the_customer.yml
178
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_update/updates_the_customer.yml
179
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_create/creates_the_invoice.yml
180
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_download/returns_the_invoice_download_link.yml
181
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/invoice_status/returns_those_invoices.yml
182
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/query/returns_the_queried_invoices.yml
183
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_show/returns_the_invoice.yml
184
+ - spec/fixtures/vcr_cassettes/Jortt_Client_LedgerAccounts/_index/returns_invoices.yml
167
185
  - spec/jortt/client/customers_spec.rb
168
- - spec/jortt/client/invoice_spec.rb
169
186
  - spec/jortt/client/invoices_spec.rb
187
+ - spec/jortt/client/ledger_accounts_spec.rb
170
188
  - spec/jortt/client_spec.rb
171
189
  - spec/jortt_spec.rb
172
190
  - spec/spec_helper.rb
@@ -174,7 +192,7 @@ homepage: https://app.jortt.nl/api-documentatie
174
192
  licenses:
175
193
  - MIT
176
194
  metadata: {}
177
- post_install_message:
195
+ post_install_message:
178
196
  rdoc_options: []
179
197
  require_paths:
180
198
  - lib
@@ -189,15 +207,32 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
207
  - !ruby/object:Gem::Version
190
208
  version: '0'
191
209
  requirements: []
192
- rubyforge_project:
193
- rubygems_version: 2.5.1
194
- signing_key:
210
+ rubygems_version: 3.1.2
211
+ signing_key:
195
212
  specification_version: 4
196
213
  summary: jortt.nl REST API client
197
214
  test_files:
215
+ - spec/fixtures/vcr_cassettes/Jortt/_client/1_1_1.yml
216
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_customers/1_1_1_1.yml
217
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_invoices/1_1_2_1.yml
218
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_ledger_accounts/1_1_3_1.yml
219
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/faulty_payload/shows_a_nice_error.yml
220
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/valid_payload/creates_the_customer.yml
221
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_delete/deletes_the_customer.yml
222
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_direct_debit_mandate/sends_direct_debit_mandate_to_the_customer_or_responds_with_an_error_when_not_possible.yml
223
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/query/returns_the_queried_customers.yml
224
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/without_params/returns_customers.yml
225
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_show/returns_the_customer.yml
226
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_update/updates_the_customer.yml
227
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_create/creates_the_invoice.yml
228
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_download/returns_the_invoice_download_link.yml
229
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/invoice_status/returns_those_invoices.yml
230
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/query/returns_the_queried_invoices.yml
231
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_show/returns_the_invoice.yml
232
+ - spec/fixtures/vcr_cassettes/Jortt_Client_LedgerAccounts/_index/returns_invoices.yml
198
233
  - spec/jortt/client/customers_spec.rb
199
- - spec/jortt/client/invoice_spec.rb
200
234
  - spec/jortt/client/invoices_spec.rb
235
+ - spec/jortt/client/ledger_accounts_spec.rb
201
236
  - spec/jortt/client_spec.rb
202
237
  - spec/jortt_spec.rb
203
238
  - spec/spec_helper.rb
@@ -1,26 +0,0 @@
1
- require: rubocop-rspec
2
-
3
- Style/AccessModifierIndentation:
4
- EnforcedStyle: outdent
5
-
6
- Style/AlignParameters:
7
- EnforcedStyle: with_fixed_indentation
8
-
9
- Style/DotPosition:
10
- EnforcedStyle: trailing
11
-
12
- Style/TrailingComma:
13
- EnforcedStyleForMultiline: comma
14
-
15
- Style/EmptyLinesAroundBody:
16
- Description: "Keeps track of empty lines around expression bodies."
17
- Enabled: false
18
-
19
- Style/RegexpLiteral:
20
- MaxSlashes: 0
21
-
22
- Style/HashSyntax:
23
- EnforcedStyle: ruby19
24
-
25
- Style/SpaceInsideHashLiteralBraces:
26
- EnforcedStyle: no_space
@@ -1,50 +0,0 @@
1
- # encoding: UTF-8
2
- require 'rest-client'
3
-
4
- module Jortt # :nodoc:
5
- class Client # :nodoc:
6
-
7
- ##
8
- # Exposes the operations available for a single invoice.
9
- #
10
- # @see { Jortt::Client.invoice }
11
- class Invoice
12
-
13
- def initialize(config, id)
14
- @config = config
15
- @id = id
16
- end
17
-
18
- ##
19
- # Sends an Invoice using the POST /invoices/id/:invoice_id/send endpoint.
20
- #
21
- # @example
22
- # Jortt::Client.invoice(:invoice_id).send(
23
- # mail_data: {
24
- # to: 'ben@jortt.nl', # optional
25
- # subject: 'Thank you for your assignment', # optional
26
- # body: 'I hereby send you the invoice', # optional
27
- # },
28
- # invoice_date: Date.today, # optional
29
- # payment_term: 7, # optional
30
- # language: 'nl', # optional
31
- # send_method: 'email', # optional
32
- # )
33
- def send_invoice(payload = {})
34
- resource = RestClient::Resource.new(
35
- "#{config.base_url}/invoices/id/#{id}/send",
36
- user: config.app_name,
37
- password: config.api_key,
38
- )
39
- resource.post(JSON.generate(payload)) do |response|
40
- JSON.parse(response.body)
41
- end
42
- end
43
-
44
- private
45
-
46
- attr_reader :config, :id
47
- end
48
-
49
- end
50
- end
@@ -1,23 +0,0 @@
1
- # encoding: UTF-8
2
- require 'spec_helper'
3
-
4
- describe Jortt::Client::Invoice do
5
- let(:invoice) do
6
- described_class.new(
7
- double(base_url: 'foo', app_name: 'app', api_key: 'secret'),
8
- 'bar',
9
- )
10
- end
11
-
12
- describe '#send_invoice' do
13
- let(:request_body) { JSON.generate(mail_data: {to: 'ben@jortt.nl'}) }
14
- let(:response_body) { JSON.generate(invoice_number: '2016-001') }
15
- subject { invoice.send_invoice(mail_data: {to: 'ben@jortt.nl'}) }
16
- before do
17
- stub_request(:post, 'http://app:secret@foo/invoices/id/bar/send').
18
- with(body: request_body).
19
- to_return(status: 200, body: response_body)
20
- end
21
- it { should eq('invoice_number' => '2016-001') }
22
- end
23
- end