fortnox-api 0.8.2 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env.template +7 -0
- data/.env.test +11 -3
- data/.gitignore +7 -1
- data/.rubocop.yml +17 -1
- data/.travis.yml +10 -9
- data/CHANGELOG.md +22 -8
- data/CONTRIBUTE.md +21 -9
- data/DEVELOPER_README.md +72 -0
- data/Guardfile +13 -4
- data/README.md +226 -64
- data/Rakefile +128 -0
- data/bin/get_tokens +79 -0
- data/bin/renew_tokens +28 -0
- data/fortnox-api.gemspec +10 -9
- data/lib/fortnox/api/mappers/base/from_json.rb +4 -3
- data/lib/fortnox/api/mappers/base/to_json.rb +2 -3
- data/lib/fortnox/api/models/base.rb +12 -10
- data/lib/fortnox/api/models/customer.rb +55 -55
- data/lib/fortnox/api/models/label.rb +2 -2
- data/lib/fortnox/api/repositories/authentication.rb +61 -0
- data/lib/fortnox/api/repositories/base/savers.rb +3 -1
- data/lib/fortnox/api/repositories/base.rb +21 -35
- data/lib/fortnox/api/repositories.rb +1 -0
- data/lib/fortnox/api/request_handling.rb +30 -18
- data/lib/fortnox/api/types/document_row.rb +3 -3
- data/lib/fortnox/api/types/enums.rb +27 -11
- data/lib/fortnox/api/types/model.rb +1 -4
- data/lib/fortnox/api/types/sized.rb +2 -2
- data/lib/fortnox/api/types.rb +14 -1
- data/lib/fortnox/api/version.rb +1 -1
- data/lib/fortnox/api.rb +12 -32
- data/spec/fortnox/api/mappers/base/canonical_name_sym_spec.rb +4 -4
- data/spec/fortnox/api/mappers/base/from_json_spec.rb +10 -12
- data/spec/fortnox/api/mappers/base/to_json_spec.rb +48 -57
- data/spec/fortnox/api/mappers/base_spec.rb +4 -7
- data/spec/fortnox/api/mappers/contexts/json_conversion.rb +38 -33
- data/spec/fortnox/api/mappers/unit_spec.rb +3 -4
- data/spec/fortnox/api/models/base_spec.rb +27 -16
- data/spec/fortnox/api/models/unit_spec.rb +5 -3
- data/spec/fortnox/api/repositories/article_spec.rb +14 -9
- data/spec/fortnox/api/repositories/authentication_spec.rb +103 -0
- data/spec/fortnox/api/repositories/base_spec.rb +106 -319
- data/spec/fortnox/api/repositories/customer_spec.rb +37 -7
- data/spec/fortnox/api/repositories/examples/all.rb +0 -1
- data/spec/fortnox/api/repositories/examples/find.rb +5 -8
- data/spec/fortnox/api/repositories/examples/only.rb +4 -13
- data/spec/fortnox/api/repositories/examples/save.rb +32 -18
- data/spec/fortnox/api/repositories/examples/save_with_nested_model.rb +0 -5
- data/spec/fortnox/api/repositories/examples/save_with_specially_named_attribute.rb +1 -4
- data/spec/fortnox/api/repositories/examples/search.rb +4 -7
- data/spec/fortnox/api/repositories/invoice_spec.rb +64 -15
- data/spec/fortnox/api/repositories/order_spec.rb +11 -9
- data/spec/fortnox/api/repositories/project_spec.rb +7 -6
- data/spec/fortnox/api/repositories/terms_of_payment_spec.rb +9 -7
- data/spec/fortnox/api/repositories/unit_spec.rb +13 -11
- data/spec/fortnox/api/types/country_spec.rb +1 -1
- data/spec/fortnox/api/types/email_spec.rb +2 -2
- data/spec/fortnox/api/types/examples/document_row.rb +3 -3
- data/spec/fortnox/api/types/examples/enum.rb +4 -4
- data/spec/fortnox/api/types/examples/types.rb +1 -3
- data/spec/fortnox/api/types/housework_types_spec.rb +54 -61
- data/spec/fortnox/api/types/model_spec.rb +3 -27
- data/spec/fortnox/api/types/order_row_spec.rb +2 -2
- data/spec/fortnox/api/types/required_spec.rb +6 -11
- data/spec/fortnox/api/types/sales_account_spec.rb +57 -0
- data/spec/fortnox/api_spec.rb +19 -124
- data/spec/spec_helper.rb +0 -14
- data/spec/support/helpers/configuration_helper.rb +30 -3
- data/spec/support/helpers.rb +1 -1
- data/spec/support/matchers/type/attribute_matcher.rb +2 -2
- data/spec/support/matchers/type/have_nullable_date_matcher.rb +6 -4
- data/spec/support/matchers/type/have_nullable_matcher.rb +1 -1
- data/spec/support/matchers/type/have_nullable_string_matcher.rb +5 -5
- data/spec/support/matchers/type/require_attribute_matcher.rb +5 -5
- data/spec/support/matchers/type/type_matcher.rb +1 -1
- data/spec/support/vcr_setup.rb +16 -0
- data/spec/vcr_cassettes/articles/all.yml +16 -43
- data/spec/vcr_cassettes/articles/find_by_hash_failure.yml +10 -12
- data/spec/vcr_cassettes/articles/find_failure.yml +10 -12
- data/spec/vcr_cassettes/articles/find_id_1.yml +13 -14
- data/spec/vcr_cassettes/articles/find_new.yml +14 -16
- data/spec/vcr_cassettes/articles/multi_param_find_by_hash.yml +13 -15
- data/spec/vcr_cassettes/articles/save_new.yml +13 -15
- data/spec/vcr_cassettes/articles/save_old.yml +14 -16
- data/spec/vcr_cassettes/articles/save_with_specially_named_attribute.yml +13 -15
- data/spec/vcr_cassettes/articles/search_by_name.yml +16 -15
- data/spec/vcr_cassettes/articles/search_miss.yml +10 -12
- data/spec/vcr_cassettes/articles/search_with_special_char.yml +10 -12
- data/spec/vcr_cassettes/articles/single_param_find_by_hash.yml +13 -27
- data/spec/vcr_cassettes/authentication/expired_token.yml +54 -0
- data/spec/vcr_cassettes/authentication/invalid_authorization.yml +57 -0
- data/spec/vcr_cassettes/authentication/invalid_refresh_token.yml +58 -0
- data/spec/vcr_cassettes/authentication/valid_request.yml +63 -0
- data/spec/vcr_cassettes/customers/all.yml +20 -127
- data/spec/vcr_cassettes/customers/find_by_hash_failure.yml +10 -12
- data/spec/vcr_cassettes/customers/find_failure.yml +10 -12
- data/spec/vcr_cassettes/customers/find_id_1.yml +14 -15
- data/spec/vcr_cassettes/customers/find_new.yml +13 -15
- data/spec/vcr_cassettes/customers/find_with_sales_account.yml +63 -0
- data/spec/vcr_cassettes/customers/multi_param_find_by_hash.yml +13 -15
- data/spec/vcr_cassettes/customers/save_new.yml +12 -14
- data/spec/vcr_cassettes/customers/save_new_with_country_code_SE.yml +12 -14
- data/spec/vcr_cassettes/customers/save_new_with_sales_account.yml +63 -0
- data/spec/vcr_cassettes/customers/save_old.yml +13 -15
- data/spec/vcr_cassettes/customers/save_with_specially_named_attribute.yml +12 -14
- data/spec/vcr_cassettes/customers/search_by_name.yml +13 -45
- data/spec/vcr_cassettes/customers/search_miss.yml +10 -12
- data/spec/vcr_cassettes/customers/search_with_special_char.yml +10 -12
- data/spec/vcr_cassettes/customers/single_param_find_by_hash.yml +14 -16
- data/spec/vcr_cassettes/invoices/all.yml +47 -112
- data/spec/vcr_cassettes/invoices/filter_hit.yml +14 -18
- data/spec/vcr_cassettes/invoices/filter_invalid.yml +10 -12
- data/spec/vcr_cassettes/invoices/find_by_hash_failure.yml +10 -12
- data/spec/vcr_cassettes/invoices/find_failure.yml +10 -12
- data/spec/vcr_cassettes/invoices/find_id_1.yml +15 -16
- data/spec/vcr_cassettes/invoices/find_new.yml +16 -18
- data/spec/vcr_cassettes/invoices/multi_param_find_by_hash.yml +13 -15
- data/spec/vcr_cassettes/invoices/row_description_limit.yml +65 -0
- data/spec/vcr_cassettes/invoices/save_new.yml +14 -16
- data/spec/vcr_cassettes/invoices/save_new_with_comments.yml +14 -16
- data/spec/vcr_cassettes/invoices/save_new_with_country.yml +14 -15
- data/spec/vcr_cassettes/invoices/save_new_with_country_GB.yml +15 -16
- data/spec/vcr_cassettes/invoices/save_new_with_country_Norge.yml +14 -15
- data/spec/vcr_cassettes/invoices/save_new_with_country_Norway.yml +14 -15
- data/spec/vcr_cassettes/invoices/save_new_with_country_Sverige.yml +14 -15
- data/spec/vcr_cassettes/invoices/save_new_with_country_VA.yml +15 -16
- data/spec/vcr_cassettes/invoices/save_new_with_country_VI.yml +15 -16
- data/spec/vcr_cassettes/invoices/save_new_with_country_empty_string.yml +14 -15
- data/spec/vcr_cassettes/invoices/save_new_with_country_nil.yml +14 -15
- data/spec/vcr_cassettes/invoices/save_new_with_unsaved_parent.yml +65 -0
- data/spec/vcr_cassettes/invoices/save_old.yml +16 -18
- data/spec/vcr_cassettes/invoices/save_old_with_empty_comments.yml +16 -18
- data/spec/vcr_cassettes/invoices/save_old_with_empty_country.yml +16 -17
- data/spec/vcr_cassettes/invoices/save_old_with_nil_comments.yml +16 -18
- data/spec/vcr_cassettes/invoices/save_old_with_nil_country.yml +16 -17
- data/spec/vcr_cassettes/invoices/save_with_nested_model.yml +15 -16
- data/spec/vcr_cassettes/invoices/save_with_specially_named_attribute.yml +14 -15
- data/spec/vcr_cassettes/invoices/search_by_name.yml +13 -21
- data/spec/vcr_cassettes/invoices/search_miss.yml +10 -12
- data/spec/vcr_cassettes/invoices/search_with_special_char.yml +10 -12
- data/spec/vcr_cassettes/invoices/single_param_find_by_hash.yml +14 -16
- data/spec/vcr_cassettes/orders/all.yml +19 -113
- data/spec/vcr_cassettes/orders/filter_hit.yml +14 -20
- data/spec/vcr_cassettes/orders/filter_invalid.yml +10 -12
- data/spec/vcr_cassettes/orders/find_by_hash_failure.yml +10 -12
- data/spec/vcr_cassettes/orders/find_failure.yml +10 -12
- data/spec/vcr_cassettes/orders/find_id_1.yml +17 -17
- data/spec/vcr_cassettes/orders/find_new.yml +16 -18
- data/spec/vcr_cassettes/orders/housework_invalid_tax_reduction_type.yml +11 -13
- data/spec/vcr_cassettes/orders/housework_othercoses_invalid.yml +11 -13
- data/spec/vcr_cassettes/orders/housework_type_babysitting.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_cleaning.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_construction.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_cooking.yml +11 -13
- data/spec/vcr_cassettes/orders/housework_type_electricity.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_gardening.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_glassmetalwork.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_grounddrainagework.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_hvac.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_itservices.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_majorappliancerepair.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_masonry.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_movingservices.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_othercare.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_othercosts.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_paintingwallpapering.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_snowplowing.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_textileclothing.yml +15 -16
- data/spec/vcr_cassettes/orders/housework_type_tutoring.yml +11 -13
- data/spec/vcr_cassettes/orders/multi_param_find_by_hash.yml +13 -15
- data/spec/vcr_cassettes/orders/save_new.yml +16 -18
- data/spec/vcr_cassettes/orders/save_old.yml +16 -18
- data/spec/vcr_cassettes/orders/save_with_nested_model.yml +15 -16
- data/spec/vcr_cassettes/orders/search_by_name.yml +13 -17
- data/spec/vcr_cassettes/orders/search_miss.yml +10 -12
- data/spec/vcr_cassettes/orders/search_with_special_char.yml +10 -12
- data/spec/vcr_cassettes/orders/single_param_find_by_hash.yml +14 -16
- data/spec/vcr_cassettes/projects/all.yml +14 -37
- data/spec/vcr_cassettes/projects/find_by_hash_failure.yml +10 -12
- data/spec/vcr_cassettes/projects/find_failure.yml +10 -12
- data/spec/vcr_cassettes/projects/find_id_1.yml +13 -15
- data/spec/vcr_cassettes/projects/find_new.yml +14 -16
- data/spec/vcr_cassettes/projects/multi_param_find_by_hash.yml +15 -16
- data/spec/vcr_cassettes/projects/save_new.yml +13 -15
- data/spec/vcr_cassettes/projects/save_old.yml +14 -16
- data/spec/vcr_cassettes/projects/single_param_find_by_hash.yml +12 -14
- data/spec/vcr_cassettes/termsofpayments/all.yml +16 -23
- data/spec/vcr_cassettes/termsofpayments/find_failure.yml +10 -12
- data/spec/vcr_cassettes/termsofpayments/find_id_1.yml +13 -16
- data/spec/vcr_cassettes/termsofpayments/find_new.yml +12 -14
- data/spec/vcr_cassettes/termsofpayments/save_new.yml +12 -14
- data/spec/vcr_cassettes/termsofpayments/save_old.yml +12 -14
- data/spec/vcr_cassettes/units/all.yml +13 -24
- data/spec/vcr_cassettes/units/find_failure.yml +10 -12
- data/spec/vcr_cassettes/units/find_id_1.yml +13 -15
- data/spec/vcr_cassettes/units/find_new.yml +12 -14
- data/spec/vcr_cassettes/units/save_new.yml +12 -14
- data/spec/vcr_cassettes/units/save_old.yml +12 -14
- data/spec/vcr_cassettes/units/save_with_specially_named_attribute.yml +12 -14
- metadata +39 -230
- data/lib/fortnox/api/circular_queue.rb +0 -39
- data/spec/fortnox/api/circular_queue_spec.rb +0 -52
- data/spec/support/helpers/when_performing_helper.rb +0 -7
- data/temp.txt +0 -1
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fortnox-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Schubert Erlandsson
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2023-02-22 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: countries
|
@@ -89,14 +89,14 @@ dependencies:
|
|
89
89
|
requirements:
|
90
90
|
- - "~>"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: '0.
|
92
|
+
version: '0.21'
|
93
93
|
type: :runtime
|
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: '0.
|
99
|
+
version: '0.21'
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: jwt
|
102
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,6 +167,20 @@ dependencies:
|
|
167
167
|
- - "~>"
|
168
168
|
- !ruby/object:Gem::Version
|
169
169
|
version: '4.7'
|
170
|
+
- !ruby/object:Gem::Dependency
|
171
|
+
name: guard-rubocop
|
172
|
+
requirement: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - "~>"
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '1.5'
|
177
|
+
type: :development
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - "~>"
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '1.5'
|
170
184
|
- !ruby/object:Gem::Dependency
|
171
185
|
name: pry
|
172
186
|
requirement: !ruby/object:Gem::Requirement
|
@@ -265,20 +279,6 @@ dependencies:
|
|
265
279
|
- - "~>"
|
266
280
|
- !ruby/object:Gem::Version
|
267
281
|
version: '0.22'
|
268
|
-
- !ruby/object:Gem::Dependency
|
269
|
-
name: timecop
|
270
|
-
requirement: !ruby/object:Gem::Requirement
|
271
|
-
requirements:
|
272
|
-
- - "~>"
|
273
|
-
- !ruby/object:Gem::Version
|
274
|
-
version: 0.9.6
|
275
|
-
type: :development
|
276
|
-
prerelease: false
|
277
|
-
version_requirements: !ruby/object:Gem::Requirement
|
278
|
-
requirements:
|
279
|
-
- - "~>"
|
280
|
-
- !ruby/object:Gem::Version
|
281
|
-
version: 0.9.6
|
282
282
|
- !ruby/object:Gem::Dependency
|
283
283
|
name: vcr
|
284
284
|
requirement: !ruby/object:Gem::Requirement
|
@@ -310,15 +310,18 @@ dependencies:
|
|
310
310
|
description: This gem uses the HTTParty library to abstract away the REST calls. It
|
311
311
|
gives you access to a number of objects that behave a lot like ActiveRecord instances,
|
312
312
|
giving you access to methods like `all`, `find`, `find_by_...` and so on. And each
|
313
|
-
individual instance can
|
313
|
+
individual instance can beeasily persistable to Fortnox again using the `save` method.
|
314
314
|
email:
|
315
315
|
- info@accodeing.com
|
316
316
|
executables:
|
317
317
|
- console
|
318
|
+
- get_tokens
|
319
|
+
- renew_tokens
|
318
320
|
extensions: []
|
319
321
|
extra_rdoc_files: []
|
320
322
|
files:
|
321
323
|
- ".codeclimate.yml"
|
324
|
+
- ".env.template"
|
322
325
|
- ".env.test"
|
323
326
|
- ".gitignore"
|
324
327
|
- ".rspec"
|
@@ -327,15 +330,17 @@ files:
|
|
327
330
|
- ".travis.yml"
|
328
331
|
- CHANGELOG.md
|
329
332
|
- CONTRIBUTE.md
|
333
|
+
- DEVELOPER_README.md
|
330
334
|
- Gemfile
|
331
335
|
- Guardfile
|
332
336
|
- LICENSE.txt
|
333
337
|
- README.md
|
334
338
|
- Rakefile
|
335
339
|
- bin/console
|
340
|
+
- bin/get_tokens
|
341
|
+
- bin/renew_tokens
|
336
342
|
- fortnox-api.gemspec
|
337
343
|
- lib/fortnox/api.rb
|
338
|
-
- lib/fortnox/api/circular_queue.rb
|
339
344
|
- lib/fortnox/api/mappers.rb
|
340
345
|
- lib/fortnox/api/mappers/article.rb
|
341
346
|
- lib/fortnox/api/mappers/base.rb
|
@@ -372,6 +377,7 @@ files:
|
|
372
377
|
- lib/fortnox/api/models/unit.rb
|
373
378
|
- lib/fortnox/api/repositories.rb
|
374
379
|
- lib/fortnox/api/repositories/article.rb
|
380
|
+
- lib/fortnox/api/repositories/authentication.rb
|
375
381
|
- lib/fortnox/api/repositories/base.rb
|
376
382
|
- lib/fortnox/api/repositories/base/loaders.rb
|
377
383
|
- lib/fortnox/api/repositories/base/savers.rb
|
@@ -398,7 +404,6 @@ files:
|
|
398
404
|
- lib/fortnox/api/types/shim/country_string.rb
|
399
405
|
- lib/fortnox/api/types/sized.rb
|
400
406
|
- lib/fortnox/api/version.rb
|
401
|
-
- spec/fortnox/api/circular_queue_spec.rb
|
402
407
|
- spec/fortnox/api/mappers/article_spec.rb
|
403
408
|
- spec/fortnox/api/mappers/base/canonical_name_sym_spec.rb
|
404
409
|
- spec/fortnox/api/mappers/base/from_json_spec.rb
|
@@ -428,6 +433,7 @@ files:
|
|
428
433
|
- spec/fortnox/api/models/terms_of_payment_spec.rb
|
429
434
|
- spec/fortnox/api/models/unit_spec.rb
|
430
435
|
- spec/fortnox/api/repositories/article_spec.rb
|
436
|
+
- spec/fortnox/api/repositories/authentication_spec.rb
|
431
437
|
- spec/fortnox/api/repositories/base_spec.rb
|
432
438
|
- spec/fortnox/api/repositories/customer_spec.rb
|
433
439
|
- spec/fortnox/api/repositories/examples/all.rb
|
@@ -459,13 +465,13 @@ files:
|
|
459
465
|
- spec/fortnox/api/types/nullable_spec.rb
|
460
466
|
- spec/fortnox/api/types/order_row_spec.rb
|
461
467
|
- spec/fortnox/api/types/required_spec.rb
|
468
|
+
- spec/fortnox/api/types/sales_account_spec.rb
|
462
469
|
- spec/fortnox/api/types/sized_spec.rb
|
463
470
|
- spec/fortnox/api_spec.rb
|
464
471
|
- spec/spec_helper.rb
|
465
472
|
- spec/support/helpers.rb
|
466
473
|
- spec/support/helpers/configuration_helper.rb
|
467
474
|
- spec/support/helpers/repository_helper.rb
|
468
|
-
- spec/support/helpers/when_performing_helper.rb
|
469
475
|
- spec/support/matchers.rb
|
470
476
|
- spec/support/matchers/type.rb
|
471
477
|
- spec/support/matchers/type/attribute_matcher.rb
|
@@ -501,14 +507,20 @@ files:
|
|
501
507
|
- spec/vcr_cassettes/articles/search_miss.yml
|
502
508
|
- spec/vcr_cassettes/articles/search_with_special_char.yml
|
503
509
|
- spec/vcr_cassettes/articles/single_param_find_by_hash.yml
|
510
|
+
- spec/vcr_cassettes/authentication/expired_token.yml
|
511
|
+
- spec/vcr_cassettes/authentication/invalid_authorization.yml
|
512
|
+
- spec/vcr_cassettes/authentication/invalid_refresh_token.yml
|
513
|
+
- spec/vcr_cassettes/authentication/valid_request.yml
|
504
514
|
- spec/vcr_cassettes/customers/all.yml
|
505
515
|
- spec/vcr_cassettes/customers/find_by_hash_failure.yml
|
506
516
|
- spec/vcr_cassettes/customers/find_failure.yml
|
507
517
|
- spec/vcr_cassettes/customers/find_id_1.yml
|
508
518
|
- spec/vcr_cassettes/customers/find_new.yml
|
519
|
+
- spec/vcr_cassettes/customers/find_with_sales_account.yml
|
509
520
|
- spec/vcr_cassettes/customers/multi_param_find_by_hash.yml
|
510
521
|
- spec/vcr_cassettes/customers/save_new.yml
|
511
522
|
- spec/vcr_cassettes/customers/save_new_with_country_code_SE.yml
|
523
|
+
- spec/vcr_cassettes/customers/save_new_with_sales_account.yml
|
512
524
|
- spec/vcr_cassettes/customers/save_old.yml
|
513
525
|
- spec/vcr_cassettes/customers/save_with_specially_named_attribute.yml
|
514
526
|
- spec/vcr_cassettes/customers/search_by_name.yml
|
@@ -523,6 +535,7 @@ files:
|
|
523
535
|
- spec/vcr_cassettes/invoices/find_id_1.yml
|
524
536
|
- spec/vcr_cassettes/invoices/find_new.yml
|
525
537
|
- spec/vcr_cassettes/invoices/multi_param_find_by_hash.yml
|
538
|
+
- spec/vcr_cassettes/invoices/row_description_limit.yml
|
526
539
|
- spec/vcr_cassettes/invoices/save_new.yml
|
527
540
|
- spec/vcr_cassettes/invoices/save_new_with_comments.yml
|
528
541
|
- spec/vcr_cassettes/invoices/save_new_with_country.yml
|
@@ -534,6 +547,7 @@ files:
|
|
534
547
|
- spec/vcr_cassettes/invoices/save_new_with_country_VI.yml
|
535
548
|
- spec/vcr_cassettes/invoices/save_new_with_country_empty_string.yml
|
536
549
|
- spec/vcr_cassettes/invoices/save_new_with_country_nil.yml
|
550
|
+
- spec/vcr_cassettes/invoices/save_new_with_unsaved_parent.yml
|
537
551
|
- spec/vcr_cassettes/invoices/save_old.yml
|
538
552
|
- spec/vcr_cassettes/invoices/save_old_with_empty_comments.yml
|
539
553
|
- spec/vcr_cassettes/invoices/save_old_with_empty_country.yml
|
@@ -603,11 +617,11 @@ files:
|
|
603
617
|
- spec/vcr_cassettes/units/save_new.yml
|
604
618
|
- spec/vcr_cassettes/units/save_old.yml
|
605
619
|
- spec/vcr_cassettes/units/save_with_specially_named_attribute.yml
|
606
|
-
- temp.txt
|
607
620
|
homepage: http://github.com/accodeing/fortnox-api
|
608
621
|
licenses:
|
609
622
|
- LGPL-3.0
|
610
|
-
metadata:
|
623
|
+
metadata:
|
624
|
+
rubygems_mfa_required: 'true'
|
611
625
|
post_install_message:
|
612
626
|
rdoc_options: []
|
613
627
|
require_paths:
|
@@ -627,209 +641,4 @@ rubygems_version: 3.4.1
|
|
627
641
|
signing_key:
|
628
642
|
specification_version: 4
|
629
643
|
summary: Gem to use Fortnox REST API in Ruby.
|
630
|
-
test_files:
|
631
|
-
- spec/fortnox/api/circular_queue_spec.rb
|
632
|
-
- spec/fortnox/api/mappers/article_spec.rb
|
633
|
-
- spec/fortnox/api/mappers/base/canonical_name_sym_spec.rb
|
634
|
-
- spec/fortnox/api/mappers/base/from_json_spec.rb
|
635
|
-
- spec/fortnox/api/mappers/base/to_json_spec.rb
|
636
|
-
- spec/fortnox/api/mappers/base_spec.rb
|
637
|
-
- spec/fortnox/api/mappers/contexts/json_conversion.rb
|
638
|
-
- spec/fortnox/api/mappers/customer_spec.rb
|
639
|
-
- spec/fortnox/api/mappers/default_delivery_types_spec.rb
|
640
|
-
- spec/fortnox/api/mappers/edi_information_spec.rb
|
641
|
-
- spec/fortnox/api/mappers/email_information_spec.rb
|
642
|
-
- spec/fortnox/api/mappers/examples/mapper.rb
|
643
|
-
- spec/fortnox/api/mappers/invoice_row_spec.rb
|
644
|
-
- spec/fortnox/api/mappers/invoice_spec.rb
|
645
|
-
- spec/fortnox/api/mappers/order_row_spec.rb
|
646
|
-
- spec/fortnox/api/mappers/order_spec.rb
|
647
|
-
- spec/fortnox/api/mappers/project_spec.rb
|
648
|
-
- spec/fortnox/api/mappers/terms_of_payment_spec.rb
|
649
|
-
- spec/fortnox/api/mappers/unit_spec.rb
|
650
|
-
- spec/fortnox/api/models/article_spec.rb
|
651
|
-
- spec/fortnox/api/models/base_spec.rb
|
652
|
-
- spec/fortnox/api/models/customer_spec.rb
|
653
|
-
- spec/fortnox/api/models/examples/document_base.rb
|
654
|
-
- spec/fortnox/api/models/examples/model.rb
|
655
|
-
- spec/fortnox/api/models/invoice_spec.rb
|
656
|
-
- spec/fortnox/api/models/order_spec.rb
|
657
|
-
- spec/fortnox/api/models/project_spec.rb
|
658
|
-
- spec/fortnox/api/models/terms_of_payment_spec.rb
|
659
|
-
- spec/fortnox/api/models/unit_spec.rb
|
660
|
-
- spec/fortnox/api/repositories/article_spec.rb
|
661
|
-
- spec/fortnox/api/repositories/base_spec.rb
|
662
|
-
- spec/fortnox/api/repositories/customer_spec.rb
|
663
|
-
- spec/fortnox/api/repositories/examples/all.rb
|
664
|
-
- spec/fortnox/api/repositories/examples/find.rb
|
665
|
-
- spec/fortnox/api/repositories/examples/only.rb
|
666
|
-
- spec/fortnox/api/repositories/examples/save.rb
|
667
|
-
- spec/fortnox/api/repositories/examples/save_with_nested_model.rb
|
668
|
-
- spec/fortnox/api/repositories/examples/save_with_specially_named_attribute.rb
|
669
|
-
- spec/fortnox/api/repositories/examples/search.rb
|
670
|
-
- spec/fortnox/api/repositories/invoice_spec.rb
|
671
|
-
- spec/fortnox/api/repositories/order_spec.rb
|
672
|
-
- spec/fortnox/api/repositories/project_spec.rb
|
673
|
-
- spec/fortnox/api/repositories/terms_of_payment_spec.rb
|
674
|
-
- spec/fortnox/api/repositories/unit_spec.rb
|
675
|
-
- spec/fortnox/api/types/account_number_spec.rb
|
676
|
-
- spec/fortnox/api/types/country_code_spec.rb
|
677
|
-
- spec/fortnox/api/types/country_spec.rb
|
678
|
-
- spec/fortnox/api/types/default_delivery_types_spec.rb
|
679
|
-
- spec/fortnox/api/types/edi_information_spec.rb
|
680
|
-
- spec/fortnox/api/types/email_information_spec.rb
|
681
|
-
- spec/fortnox/api/types/email_spec.rb
|
682
|
-
- spec/fortnox/api/types/enums_spec.rb
|
683
|
-
- spec/fortnox/api/types/examples/document_row.rb
|
684
|
-
- spec/fortnox/api/types/examples/enum.rb
|
685
|
-
- spec/fortnox/api/types/examples/types.rb
|
686
|
-
- spec/fortnox/api/types/housework_types_spec.rb
|
687
|
-
- spec/fortnox/api/types/invoice_row_spec.rb
|
688
|
-
- spec/fortnox/api/types/model_spec.rb
|
689
|
-
- spec/fortnox/api/types/nullable_spec.rb
|
690
|
-
- spec/fortnox/api/types/order_row_spec.rb
|
691
|
-
- spec/fortnox/api/types/required_spec.rb
|
692
|
-
- spec/fortnox/api/types/sized_spec.rb
|
693
|
-
- spec/fortnox/api_spec.rb
|
694
|
-
- spec/spec_helper.rb
|
695
|
-
- spec/support/helpers.rb
|
696
|
-
- spec/support/helpers/configuration_helper.rb
|
697
|
-
- spec/support/helpers/repository_helper.rb
|
698
|
-
- spec/support/helpers/when_performing_helper.rb
|
699
|
-
- spec/support/matchers.rb
|
700
|
-
- spec/support/matchers/type.rb
|
701
|
-
- spec/support/matchers/type/attribute_matcher.rb
|
702
|
-
- spec/support/matchers/type/enum_matcher.rb
|
703
|
-
- spec/support/matchers/type/have_account_number_matcher.rb
|
704
|
-
- spec/support/matchers/type/have_currency_matcher.rb
|
705
|
-
- spec/support/matchers/type/have_customer_type_matcher.rb
|
706
|
-
- spec/support/matchers/type/have_default_delivery_type_matcher.rb
|
707
|
-
- spec/support/matchers/type/have_discount_type_matcher.rb
|
708
|
-
- spec/support/matchers/type/have_email_matcher.rb
|
709
|
-
- spec/support/matchers/type/have_housework_type_matcher.rb
|
710
|
-
- spec/support/matchers/type/have_nullable_date_matcher.rb
|
711
|
-
- spec/support/matchers/type/have_nullable_matcher.rb
|
712
|
-
- spec/support/matchers/type/have_nullable_string_matcher.rb
|
713
|
-
- spec/support/matchers/type/have_sized_float_matcher.rb
|
714
|
-
- spec/support/matchers/type/have_sized_integer_matcher.rb
|
715
|
-
- spec/support/matchers/type/have_sized_string_matcher.rb
|
716
|
-
- spec/support/matchers/type/have_vat_type_matcher.rb
|
717
|
-
- spec/support/matchers/type/numeric_matcher.rb
|
718
|
-
- spec/support/matchers/type/require_attribute_matcher.rb
|
719
|
-
- spec/support/matchers/type/type_matcher.rb
|
720
|
-
- spec/support/vcr_setup.rb
|
721
|
-
- spec/vcr_cassettes/articles/all.yml
|
722
|
-
- spec/vcr_cassettes/articles/find_by_hash_failure.yml
|
723
|
-
- spec/vcr_cassettes/articles/find_failure.yml
|
724
|
-
- spec/vcr_cassettes/articles/find_id_1.yml
|
725
|
-
- spec/vcr_cassettes/articles/find_new.yml
|
726
|
-
- spec/vcr_cassettes/articles/multi_param_find_by_hash.yml
|
727
|
-
- spec/vcr_cassettes/articles/save_new.yml
|
728
|
-
- spec/vcr_cassettes/articles/save_old.yml
|
729
|
-
- spec/vcr_cassettes/articles/save_with_specially_named_attribute.yml
|
730
|
-
- spec/vcr_cassettes/articles/search_by_name.yml
|
731
|
-
- spec/vcr_cassettes/articles/search_miss.yml
|
732
|
-
- spec/vcr_cassettes/articles/search_with_special_char.yml
|
733
|
-
- spec/vcr_cassettes/articles/single_param_find_by_hash.yml
|
734
|
-
- spec/vcr_cassettes/customers/all.yml
|
735
|
-
- spec/vcr_cassettes/customers/find_by_hash_failure.yml
|
736
|
-
- spec/vcr_cassettes/customers/find_failure.yml
|
737
|
-
- spec/vcr_cassettes/customers/find_id_1.yml
|
738
|
-
- spec/vcr_cassettes/customers/find_new.yml
|
739
|
-
- spec/vcr_cassettes/customers/multi_param_find_by_hash.yml
|
740
|
-
- spec/vcr_cassettes/customers/save_new.yml
|
741
|
-
- spec/vcr_cassettes/customers/save_new_with_country_code_SE.yml
|
742
|
-
- spec/vcr_cassettes/customers/save_old.yml
|
743
|
-
- spec/vcr_cassettes/customers/save_with_specially_named_attribute.yml
|
744
|
-
- spec/vcr_cassettes/customers/search_by_name.yml
|
745
|
-
- spec/vcr_cassettes/customers/search_miss.yml
|
746
|
-
- spec/vcr_cassettes/customers/search_with_special_char.yml
|
747
|
-
- spec/vcr_cassettes/customers/single_param_find_by_hash.yml
|
748
|
-
- spec/vcr_cassettes/invoices/all.yml
|
749
|
-
- spec/vcr_cassettes/invoices/filter_hit.yml
|
750
|
-
- spec/vcr_cassettes/invoices/filter_invalid.yml
|
751
|
-
- spec/vcr_cassettes/invoices/find_by_hash_failure.yml
|
752
|
-
- spec/vcr_cassettes/invoices/find_failure.yml
|
753
|
-
- spec/vcr_cassettes/invoices/find_id_1.yml
|
754
|
-
- spec/vcr_cassettes/invoices/find_new.yml
|
755
|
-
- spec/vcr_cassettes/invoices/multi_param_find_by_hash.yml
|
756
|
-
- spec/vcr_cassettes/invoices/save_new.yml
|
757
|
-
- spec/vcr_cassettes/invoices/save_new_with_comments.yml
|
758
|
-
- spec/vcr_cassettes/invoices/save_new_with_country.yml
|
759
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_GB.yml
|
760
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_Norge.yml
|
761
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_Norway.yml
|
762
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_Sverige.yml
|
763
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_VA.yml
|
764
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_VI.yml
|
765
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_empty_string.yml
|
766
|
-
- spec/vcr_cassettes/invoices/save_new_with_country_nil.yml
|
767
|
-
- spec/vcr_cassettes/invoices/save_old.yml
|
768
|
-
- spec/vcr_cassettes/invoices/save_old_with_empty_comments.yml
|
769
|
-
- spec/vcr_cassettes/invoices/save_old_with_empty_country.yml
|
770
|
-
- spec/vcr_cassettes/invoices/save_old_with_nil_comments.yml
|
771
|
-
- spec/vcr_cassettes/invoices/save_old_with_nil_country.yml
|
772
|
-
- spec/vcr_cassettes/invoices/save_with_nested_model.yml
|
773
|
-
- spec/vcr_cassettes/invoices/save_with_specially_named_attribute.yml
|
774
|
-
- spec/vcr_cassettes/invoices/search_by_name.yml
|
775
|
-
- spec/vcr_cassettes/invoices/search_miss.yml
|
776
|
-
- spec/vcr_cassettes/invoices/search_with_special_char.yml
|
777
|
-
- spec/vcr_cassettes/invoices/single_param_find_by_hash.yml
|
778
|
-
- spec/vcr_cassettes/orders/all.yml
|
779
|
-
- spec/vcr_cassettes/orders/filter_hit.yml
|
780
|
-
- spec/vcr_cassettes/orders/filter_invalid.yml
|
781
|
-
- spec/vcr_cassettes/orders/find_by_hash_failure.yml
|
782
|
-
- spec/vcr_cassettes/orders/find_failure.yml
|
783
|
-
- spec/vcr_cassettes/orders/find_id_1.yml
|
784
|
-
- spec/vcr_cassettes/orders/find_new.yml
|
785
|
-
- spec/vcr_cassettes/orders/housework_invalid_tax_reduction_type.yml
|
786
|
-
- spec/vcr_cassettes/orders/housework_othercoses_invalid.yml
|
787
|
-
- spec/vcr_cassettes/orders/housework_type_babysitting.yml
|
788
|
-
- spec/vcr_cassettes/orders/housework_type_cleaning.yml
|
789
|
-
- spec/vcr_cassettes/orders/housework_type_construction.yml
|
790
|
-
- spec/vcr_cassettes/orders/housework_type_cooking.yml
|
791
|
-
- spec/vcr_cassettes/orders/housework_type_electricity.yml
|
792
|
-
- spec/vcr_cassettes/orders/housework_type_gardening.yml
|
793
|
-
- spec/vcr_cassettes/orders/housework_type_glassmetalwork.yml
|
794
|
-
- spec/vcr_cassettes/orders/housework_type_grounddrainagework.yml
|
795
|
-
- spec/vcr_cassettes/orders/housework_type_hvac.yml
|
796
|
-
- spec/vcr_cassettes/orders/housework_type_itservices.yml
|
797
|
-
- spec/vcr_cassettes/orders/housework_type_majorappliancerepair.yml
|
798
|
-
- spec/vcr_cassettes/orders/housework_type_masonry.yml
|
799
|
-
- spec/vcr_cassettes/orders/housework_type_movingservices.yml
|
800
|
-
- spec/vcr_cassettes/orders/housework_type_othercare.yml
|
801
|
-
- spec/vcr_cassettes/orders/housework_type_othercosts.yml
|
802
|
-
- spec/vcr_cassettes/orders/housework_type_paintingwallpapering.yml
|
803
|
-
- spec/vcr_cassettes/orders/housework_type_snowplowing.yml
|
804
|
-
- spec/vcr_cassettes/orders/housework_type_textileclothing.yml
|
805
|
-
- spec/vcr_cassettes/orders/housework_type_tutoring.yml
|
806
|
-
- spec/vcr_cassettes/orders/multi_param_find_by_hash.yml
|
807
|
-
- spec/vcr_cassettes/orders/save_new.yml
|
808
|
-
- spec/vcr_cassettes/orders/save_old.yml
|
809
|
-
- spec/vcr_cassettes/orders/save_with_nested_model.yml
|
810
|
-
- spec/vcr_cassettes/orders/search_by_name.yml
|
811
|
-
- spec/vcr_cassettes/orders/search_miss.yml
|
812
|
-
- spec/vcr_cassettes/orders/search_with_special_char.yml
|
813
|
-
- spec/vcr_cassettes/orders/single_param_find_by_hash.yml
|
814
|
-
- spec/vcr_cassettes/projects/all.yml
|
815
|
-
- spec/vcr_cassettes/projects/find_by_hash_failure.yml
|
816
|
-
- spec/vcr_cassettes/projects/find_failure.yml
|
817
|
-
- spec/vcr_cassettes/projects/find_id_1.yml
|
818
|
-
- spec/vcr_cassettes/projects/find_new.yml
|
819
|
-
- spec/vcr_cassettes/projects/multi_param_find_by_hash.yml
|
820
|
-
- spec/vcr_cassettes/projects/save_new.yml
|
821
|
-
- spec/vcr_cassettes/projects/save_old.yml
|
822
|
-
- spec/vcr_cassettes/projects/single_param_find_by_hash.yml
|
823
|
-
- spec/vcr_cassettes/termsofpayments/all.yml
|
824
|
-
- spec/vcr_cassettes/termsofpayments/find_failure.yml
|
825
|
-
- spec/vcr_cassettes/termsofpayments/find_id_1.yml
|
826
|
-
- spec/vcr_cassettes/termsofpayments/find_new.yml
|
827
|
-
- spec/vcr_cassettes/termsofpayments/save_new.yml
|
828
|
-
- spec/vcr_cassettes/termsofpayments/save_old.yml
|
829
|
-
- spec/vcr_cassettes/units/all.yml
|
830
|
-
- spec/vcr_cassettes/units/find_failure.yml
|
831
|
-
- spec/vcr_cassettes/units/find_id_1.yml
|
832
|
-
- spec/vcr_cassettes/units/find_new.yml
|
833
|
-
- spec/vcr_cassettes/units/save_new.yml
|
834
|
-
- spec/vcr_cassettes/units/save_old.yml
|
835
|
-
- spec/vcr_cassettes/units/save_with_specially_named_attribute.yml
|
644
|
+
test_files: []
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'forwardable'
|
4
|
-
|
5
|
-
# rubocop:disable Style/ClassVars
|
6
|
-
|
7
|
-
module Fortnox
|
8
|
-
module API
|
9
|
-
class CircularQueue
|
10
|
-
extend Forwardable
|
11
|
-
|
12
|
-
def initialize(*items)
|
13
|
-
@queue = [*items]
|
14
|
-
@@next_index = random_start_index
|
15
|
-
end
|
16
|
-
|
17
|
-
# support some general Array methods that fit Queues well
|
18
|
-
def_delegators :@queue, :new, :[], :size
|
19
|
-
|
20
|
-
def next
|
21
|
-
value = @queue[@@next_index]
|
22
|
-
if @@next_index == size - 1
|
23
|
-
@@next_index = 0
|
24
|
-
else
|
25
|
-
@@next_index += 1
|
26
|
-
end
|
27
|
-
value
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def random_start_index
|
33
|
-
Random.rand(@queue.size)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# rubocop:enable Style/ClassVars
|
@@ -1,52 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
require 'fortnox/api/circular_queue'
|
5
|
-
|
6
|
-
describe Fortnox::API::CircularQueue do
|
7
|
-
describe 'start index' do
|
8
|
-
context 'when running several times' do
|
9
|
-
subject { Set.new(samples).size }
|
10
|
-
|
11
|
-
let(:test_array) { (0..99).to_a }
|
12
|
-
let(:samples) { Array.new(100) { described_class.new(*test_array).next } }
|
13
|
-
|
14
|
-
# NOTE: This test is not perfect. We are testing that a random generator
|
15
|
-
# with 100 items to choose from does not choose the same item 100 times in a row.
|
16
|
-
# Yes, the possibility is low, but I thought I should just mention it :)
|
17
|
-
it 'does not start with the same item each time' do
|
18
|
-
is_expected.to be > 1
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
describe '#next' do
|
24
|
-
context 'when several items in queue' do
|
25
|
-
let(:queue) { described_class.new(1, 2, 3) }
|
26
|
-
let(:first_round) { Array.new(3) { queue.next } }
|
27
|
-
let(:second_round) { Array.new(3) { queue.next } }
|
28
|
-
|
29
|
-
it 'circulates the items' do
|
30
|
-
first_round
|
31
|
-
expect(first_round[0]).to eq(queue.next)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'circulates the items in the same order each time' do
|
35
|
-
expect(first_round).to eq(second_round)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'circulates through given input' do
|
39
|
-
expect(first_round.sort).to eq([1, 2, 3])
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'when only one item in queue' do
|
44
|
-
let(:queue) { described_class.new(1) }
|
45
|
-
|
46
|
-
it 'circulates the item' do
|
47
|
-
first_item = queue.next
|
48
|
-
expect(first_item).to eq(queue.next)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
data/temp.txt
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
temp2
|