jortt 3.0.0 → 6.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 (43) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/rspec.yml +40 -0
  3. data/.ruby-version +1 -1
  4. data/README.md +81 -46
  5. data/Rakefile +0 -1
  6. data/jortt.gemspec +10 -10
  7. data/lib/jortt.rb +0 -1
  8. data/lib/jortt/client.rb +75 -23
  9. data/lib/jortt/client/customers.rb +91 -0
  10. data/lib/jortt/client/error.rb +33 -0
  11. data/lib/jortt/client/invoices.rb +80 -0
  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/_credit/credits_the_invoice.yml +374 -0
  28. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_download/returns_the_invoice_download_link.yml +168 -0
  29. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/invoice_status/returns_those_invoices.yml +776 -0
  30. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/query/returns_the_queried_invoices.yml +315 -0
  31. data/spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_show/returns_the_invoice.yml +421 -0
  32. data/spec/fixtures/vcr_cassettes/Jortt_Client_LedgerAccounts/_index/returns_invoices.yml +118 -0
  33. data/spec/jortt/client/customers_spec.rb +104 -0
  34. data/spec/jortt/client/invoices_spec.rb +129 -0
  35. data/spec/jortt/client/ledger_accounts_spec.rb +19 -0
  36. data/spec/jortt/client_spec.rb +9 -30
  37. data/spec/{freemle_spec.rb → jortt_spec.rb} +2 -3
  38. data/spec/spec_helper.rb +18 -4
  39. metadata +95 -46
  40. data/.rubocop.yml +0 -26
  41. data/.travis.yml +0 -7
  42. data/lib/jortt/client/resource.rb +0 -140
  43. data/spec/jortt/client/resource_spec.rb +0 -31
metadata CHANGED
@@ -1,158 +1,163 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jortt
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Forma
8
- - Steven Weller
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: 2016-02-08 00:00:00.000000000 Z
14
+ date: 2021-02-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - "~>"
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '2.0'
23
+ - - "<"
21
24
  - !ruby/object:Gem::Version
22
- version: '1.6'
25
+ version: '2.2'
23
26
  type: :runtime
24
27
  prerelease: false
25
28
  version_requirements: !ruby/object:Gem::Requirement
26
29
  requirements:
27
- - - "~>"
30
+ - - ">="
28
31
  - !ruby/object:Gem::Version
29
- version: '1.6'
32
+ version: '2.0'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '2.2'
30
36
  - !ruby/object:Gem::Dependency
31
- name: bundler
37
+ name: oauth2
32
38
  requirement: !ruby/object:Gem::Requirement
33
39
  requirements:
34
40
  - - "~>"
35
41
  - !ruby/object:Gem::Version
36
- version: '1.0'
37
- type: :development
42
+ version: 1.4.4
43
+ type: :runtime
38
44
  prerelease: false
39
45
  version_requirements: !ruby/object:Gem::Requirement
40
46
  requirements:
41
47
  - - "~>"
42
48
  - !ruby/object:Gem::Version
43
- version: '1.0'
49
+ version: 1.4.4
44
50
  - !ruby/object:Gem::Dependency
45
- name: codecov
51
+ name: bundler
46
52
  requirement: !ruby/object:Gem::Requirement
47
53
  requirements:
48
54
  - - "~>"
49
55
  - !ruby/object:Gem::Version
50
- version: '0.1'
56
+ version: '2.0'
51
57
  type: :development
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
54
60
  requirements:
55
61
  - - "~>"
56
62
  - !ruby/object:Gem::Version
57
- version: '0.1'
63
+ version: '2.0'
58
64
  - !ruby/object:Gem::Dependency
59
- name: rake
65
+ name: codecov
60
66
  requirement: !ruby/object:Gem::Requirement
61
67
  requirements:
62
68
  - - "~>"
63
69
  - !ruby/object:Gem::Version
64
- version: '10.0'
70
+ version: '0.1'
65
71
  type: :development
66
72
  prerelease: false
67
73
  version_requirements: !ruby/object:Gem::Requirement
68
74
  requirements:
69
75
  - - "~>"
70
76
  - !ruby/object:Gem::Version
71
- version: '10.0'
77
+ version: '0.1'
72
78
  - !ruby/object:Gem::Dependency
73
- name: rspec
79
+ name: rake
74
80
  requirement: !ruby/object:Gem::Requirement
75
81
  requirements:
76
82
  - - "~>"
77
83
  - !ruby/object:Gem::Version
78
- version: 3.4.0
84
+ version: '13.0'
79
85
  type: :development
80
86
  prerelease: false
81
87
  version_requirements: !ruby/object:Gem::Requirement
82
88
  requirements:
83
89
  - - "~>"
84
90
  - !ruby/object:Gem::Version
85
- version: 3.4.0
91
+ version: '13.0'
86
92
  - !ruby/object:Gem::Dependency
87
- name: rspec-its
93
+ name: rspec
88
94
  requirement: !ruby/object:Gem::Requirement
89
95
  requirements:
90
96
  - - "~>"
91
97
  - !ruby/object:Gem::Version
92
- version: 1.2.0
98
+ version: '3.7'
93
99
  type: :development
94
100
  prerelease: false
95
101
  version_requirements: !ruby/object:Gem::Requirement
96
102
  requirements:
97
103
  - - "~>"
98
104
  - !ruby/object:Gem::Version
99
- version: 1.2.0
105
+ version: '3.7'
100
106
  - !ruby/object:Gem::Dependency
101
- name: webmock
107
+ name: rspec-its
102
108
  requirement: !ruby/object:Gem::Requirement
103
109
  requirements:
104
110
  - - "~>"
105
111
  - !ruby/object:Gem::Version
106
- version: '1.17'
112
+ version: '1.2'
107
113
  type: :development
108
114
  prerelease: false
109
115
  version_requirements: !ruby/object:Gem::Requirement
110
116
  requirements:
111
117
  - - "~>"
112
118
  - !ruby/object:Gem::Version
113
- version: '1.17'
119
+ version: '1.2'
114
120
  - !ruby/object:Gem::Dependency
115
- name: rubocop
121
+ name: webmock
116
122
  requirement: !ruby/object:Gem::Requirement
117
123
  requirements:
118
124
  - - "~>"
119
125
  - !ruby/object:Gem::Version
120
- version: 0.24.1
126
+ version: '3.3'
121
127
  type: :development
122
128
  prerelease: false
123
129
  version_requirements: !ruby/object:Gem::Requirement
124
130
  requirements:
125
131
  - - "~>"
126
132
  - !ruby/object:Gem::Version
127
- version: 0.24.1
133
+ version: '3.3'
128
134
  - !ruby/object:Gem::Dependency
129
- name: rubocop-rspec
135
+ name: vcr
130
136
  requirement: !ruby/object:Gem::Requirement
131
137
  requirements:
132
138
  - - "~>"
133
139
  - !ruby/object:Gem::Version
134
- version: 1.1.0
140
+ version: '6.0'
135
141
  type: :development
136
142
  prerelease: false
137
143
  version_requirements: !ruby/object:Gem::Requirement
138
144
  requirements:
139
145
  - - "~>"
140
146
  - !ruby/object:Gem::Version
141
- version: 1.1.0
142
- description:
147
+ version: '6.0'
148
+ description:
143
149
  email:
144
150
  - bforma@zilverline.com
145
- - suweller@zilverline.com
151
+ - mfranken@zilverline.com
146
152
  - lvonk@zilverline.com
147
153
  - svdiepen@zilverline.com
148
154
  executables: []
149
155
  extensions: []
150
156
  extra_rdoc_files: []
151
157
  files:
158
+ - ".github/workflows/rspec.yml"
152
159
  - ".gitignore"
153
- - ".rubocop.yml"
154
160
  - ".ruby-version"
155
- - ".travis.yml"
156
161
  - Gemfile
157
162
  - LICENSE.txt
158
163
  - README.md
@@ -160,17 +165,41 @@ files:
160
165
  - jortt.gemspec
161
166
  - lib/jortt.rb
162
167
  - lib/jortt/client.rb
163
- - lib/jortt/client/resource.rb
168
+ - lib/jortt/client/customers.rb
169
+ - lib/jortt/client/error.rb
170
+ - lib/jortt/client/invoices.rb
171
+ - lib/jortt/client/ledger_accounts.rb
164
172
  - lib/jortt/client/version.rb
165
- - spec/freemle_spec.rb
166
- - spec/jortt/client/resource_spec.rb
173
+ - spec/fixtures/vcr_cassettes/Jortt/_client/1_1_1.yml
174
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_customers/1_1_1_1.yml
175
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_invoices/1_1_2_1.yml
176
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_ledger_accounts/1_1_3_1.yml
177
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/faulty_payload/shows_a_nice_error.yml
178
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/valid_payload/creates_the_customer.yml
179
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_delete/deletes_the_customer.yml
180
+ - 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
181
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/query/returns_the_queried_customers.yml
182
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/without_params/returns_customers.yml
183
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_show/returns_the_customer.yml
184
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_update/updates_the_customer.yml
185
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_create/creates_the_invoice.yml
186
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_credit/credits_the_invoice.yml
187
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_download/returns_the_invoice_download_link.yml
188
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/invoice_status/returns_those_invoices.yml
189
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/query/returns_the_queried_invoices.yml
190
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_show/returns_the_invoice.yml
191
+ - spec/fixtures/vcr_cassettes/Jortt_Client_LedgerAccounts/_index/returns_invoices.yml
192
+ - spec/jortt/client/customers_spec.rb
193
+ - spec/jortt/client/invoices_spec.rb
194
+ - spec/jortt/client/ledger_accounts_spec.rb
167
195
  - spec/jortt/client_spec.rb
196
+ - spec/jortt_spec.rb
168
197
  - spec/spec_helper.rb
169
198
  homepage: https://app.jortt.nl/api-documentatie
170
199
  licenses:
171
200
  - MIT
172
201
  metadata: {}
173
- post_install_message:
202
+ post_install_message:
174
203
  rdoc_options: []
175
204
  require_paths:
176
205
  - lib
@@ -185,13 +214,33 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
214
  - !ruby/object:Gem::Version
186
215
  version: '0'
187
216
  requirements: []
188
- rubyforge_project:
189
- rubygems_version: 2.5.1
190
- signing_key:
217
+ rubygems_version: 3.2.3
218
+ signing_key:
191
219
  specification_version: 4
192
220
  summary: jortt.nl REST API client
193
221
  test_files:
194
- - spec/freemle_spec.rb
195
- - spec/jortt/client/resource_spec.rb
222
+ - spec/fixtures/vcr_cassettes/Jortt/_client/1_1_1.yml
223
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_customers/1_1_1_1.yml
224
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_invoices/1_1_2_1.yml
225
+ - spec/fixtures/vcr_cassettes/Jortt_Client/configured/_ledger_accounts/1_1_3_1.yml
226
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/faulty_payload/shows_a_nice_error.yml
227
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_create/valid_payload/creates_the_customer.yml
228
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_delete/deletes_the_customer.yml
229
+ - 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
230
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/query/returns_the_queried_customers.yml
231
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_index/without_params/returns_customers.yml
232
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_show/returns_the_customer.yml
233
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Customers/_update/updates_the_customer.yml
234
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_create/creates_the_invoice.yml
235
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_credit/credits_the_invoice.yml
236
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_download/returns_the_invoice_download_link.yml
237
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/invoice_status/returns_those_invoices.yml
238
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_index/query/returns_the_queried_invoices.yml
239
+ - spec/fixtures/vcr_cassettes/Jortt_Client_Invoices/_show/returns_the_invoice.yml
240
+ - spec/fixtures/vcr_cassettes/Jortt_Client_LedgerAccounts/_index/returns_invoices.yml
241
+ - spec/jortt/client/customers_spec.rb
242
+ - spec/jortt/client/invoices_spec.rb
243
+ - spec/jortt/client/ledger_accounts_spec.rb
196
244
  - spec/jortt/client_spec.rb
245
+ - spec/jortt_spec.rb
197
246
  - spec/spec_helper.rb
data/.rubocop.yml DELETED
@@ -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
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.4
4
- - 2.3.0
5
- script:
6
- - bundle exec rspec
7
- - bundle exec rubocop
@@ -1,140 +0,0 @@
1
- # encoding: UTF-8
2
- require 'rest-client'
3
-
4
- module Jortt # :nodoc:
5
- class Client # :nodoc:
6
- ##
7
- # This class is used by {Jortt::Client} internally.
8
- # It wraps rest API calls of a single resource,
9
- # so they can easily be used using the client DSL.
10
- #
11
- # @see { Jortt::Client.customer }
12
- class Resource
13
-
14
- # Details needed to connect to this resource, see
15
- # +Jortt::Client#initialize+
16
- #
17
- # @since 1.0.0
18
- attr_accessor :config
19
-
20
- # The singular form, posted to and returned when describing
21
- # a single member of this resource.
22
- #
23
- # @since 1.0.0
24
- attr_accessor :singular
25
-
26
- # Used to describe multiple members of this resource.
27
- #
28
- # @since 1.0.0
29
- attr_accessor :plural
30
-
31
- # Creates a new resource instance.
32
- #
33
- # @see { Jortt::Client#new_resource }
34
- #
35
- # @returns [ Jortt::Client::Resource ] bound to the resource
36
- # defined by +singular+ & +plural+
37
- #
38
- # @since 1.0.0
39
- def initialize(config, singular, plural)
40
- self.config = config
41
- self.singular = singular
42
- self.plural = plural
43
- end
44
-
45
- # Performs a search on this resource, given a query.
46
- #
47
- # @example
48
- # customers.search('Zilverline')
49
- #
50
- # @example
51
- # customers.search('Zilverline') do |response|
52
- # # Roll your own response handler
53
- # end
54
- #
55
- # @param [ Hash ] query A hash containing the fields to search for.
56
- # @param [ Proc ] block A custom response handler.
57
- #
58
- # @return [ Array<Hash> ] By default, a JSON parsed response body.
59
- #
60
- # @since 1.0.0
61
- def search(query, &block)
62
- block = default_handler unless block_given?
63
- request.get(params: {query: query}, &block)
64
- end
65
-
66
- # Persists a resource on app.jortt.nl, given a payload.
67
- #
68
- # @example
69
- # customers.create(
70
- # company_name: "Zilverline B.V.",
71
- # address: {
72
- # street: "Cruquiusweg 109 F",
73
- # postal_code: "1019 AG",
74
- # city: "Amsterdam",
75
- # country_code: "NL"
76
- # }
77
- # )
78
- #
79
- # @example
80
- # customers.create(
81
- # company_name: "Zilverline B.V.",
82
- # address: {
83
- # street: "Cruquiusweg 109 F",
84
- # postal_code: "1019 AG",
85
- # city: "Amsterdam",
86
- # country_code: "NL"
87
- # }
88
- # ) do |response|
89
- # # Roll your own response handler
90
- # end
91
- #
92
- # @param [ Hash ] payload A hash containing the fields to set.
93
- # @param [ Proc ] block A custom response handler.
94
- #
95
- # @return [ Hash ] By default, a JSON parsed response body.
96
- #
97
- # @since 1.0.0
98
- def create(payload, &block)
99
- block = default_handler unless block_given?
100
- request.post(json.generate(singular => payload), &block)
101
- end
102
-
103
- private
104
-
105
- # Returns a response handler, which parses the response body as JSON.
106
- #
107
- # @return [ Proc ] Default response handler.
108
- #
109
- # @since 1.0.0
110
- def default_handler
111
- proc { |response| json.parse(response.body) }
112
- end
113
-
114
- # Returns a new request handler for this resource.
115
- #
116
- # @return [ RestClient::Resource ] A request handler.
117
- #
118
- # @since 1.0.0
119
- def request
120
- RestClient::Resource.new(
121
- "#{config.base_url}/#{plural}",
122
- user: config.app_name,
123
- password: config.api_key,
124
- )
125
- end
126
-
127
- # Returns the JSON library used in request/default-response handling.
128
- #
129
- # @return [ Class ] A JSON library.
130
- #
131
- # @since 1.0.0
132
- def json
133
- return @json if @json
134
- require 'json'
135
- @json = JSON
136
- end
137
-
138
- end
139
- end
140
- end