fortnox-api 0.8.2 → 0.9.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 (205) hide show
  1. checksums.yaml +4 -4
  2. data/.env.template +7 -0
  3. data/.env.test +11 -3
  4. data/.gitignore +7 -1
  5. data/.rubocop.yml +17 -1
  6. data/.travis.yml +10 -9
  7. data/CHANGELOG.md +22 -8
  8. data/CONTRIBUTE.md +21 -9
  9. data/DEVELOPER_README.md +72 -0
  10. data/Guardfile +13 -4
  11. data/README.md +226 -64
  12. data/Rakefile +128 -0
  13. data/bin/get_tokens +79 -0
  14. data/bin/renew_tokens +28 -0
  15. data/fortnox-api.gemspec +10 -9
  16. data/lib/fortnox/api/mappers/base/from_json.rb +4 -3
  17. data/lib/fortnox/api/mappers/base/to_json.rb +2 -3
  18. data/lib/fortnox/api/models/base.rb +12 -10
  19. data/lib/fortnox/api/models/customer.rb +55 -55
  20. data/lib/fortnox/api/models/label.rb +2 -2
  21. data/lib/fortnox/api/repositories/authentication.rb +61 -0
  22. data/lib/fortnox/api/repositories/base/savers.rb +3 -1
  23. data/lib/fortnox/api/repositories/base.rb +21 -35
  24. data/lib/fortnox/api/repositories.rb +1 -0
  25. data/lib/fortnox/api/request_handling.rb +30 -18
  26. data/lib/fortnox/api/types/document_row.rb +3 -3
  27. data/lib/fortnox/api/types/enums.rb +27 -11
  28. data/lib/fortnox/api/types/model.rb +1 -4
  29. data/lib/fortnox/api/types/sized.rb +2 -2
  30. data/lib/fortnox/api/types.rb +14 -1
  31. data/lib/fortnox/api/version.rb +1 -1
  32. data/lib/fortnox/api.rb +12 -32
  33. data/spec/fortnox/api/mappers/base/canonical_name_sym_spec.rb +4 -4
  34. data/spec/fortnox/api/mappers/base/from_json_spec.rb +10 -12
  35. data/spec/fortnox/api/mappers/base/to_json_spec.rb +48 -57
  36. data/spec/fortnox/api/mappers/base_spec.rb +4 -7
  37. data/spec/fortnox/api/mappers/contexts/json_conversion.rb +38 -33
  38. data/spec/fortnox/api/mappers/unit_spec.rb +3 -4
  39. data/spec/fortnox/api/models/base_spec.rb +27 -16
  40. data/spec/fortnox/api/models/unit_spec.rb +5 -3
  41. data/spec/fortnox/api/repositories/article_spec.rb +14 -9
  42. data/spec/fortnox/api/repositories/authentication_spec.rb +103 -0
  43. data/spec/fortnox/api/repositories/base_spec.rb +106 -319
  44. data/spec/fortnox/api/repositories/customer_spec.rb +37 -7
  45. data/spec/fortnox/api/repositories/examples/all.rb +0 -1
  46. data/spec/fortnox/api/repositories/examples/find.rb +5 -8
  47. data/spec/fortnox/api/repositories/examples/only.rb +4 -13
  48. data/spec/fortnox/api/repositories/examples/save.rb +32 -18
  49. data/spec/fortnox/api/repositories/examples/save_with_nested_model.rb +0 -5
  50. data/spec/fortnox/api/repositories/examples/save_with_specially_named_attribute.rb +1 -4
  51. data/spec/fortnox/api/repositories/examples/search.rb +4 -7
  52. data/spec/fortnox/api/repositories/invoice_spec.rb +64 -15
  53. data/spec/fortnox/api/repositories/order_spec.rb +11 -9
  54. data/spec/fortnox/api/repositories/project_spec.rb +7 -6
  55. data/spec/fortnox/api/repositories/terms_of_payment_spec.rb +9 -7
  56. data/spec/fortnox/api/repositories/unit_spec.rb +13 -11
  57. data/spec/fortnox/api/types/country_spec.rb +1 -1
  58. data/spec/fortnox/api/types/email_spec.rb +2 -2
  59. data/spec/fortnox/api/types/examples/document_row.rb +3 -3
  60. data/spec/fortnox/api/types/examples/enum.rb +4 -4
  61. data/spec/fortnox/api/types/examples/types.rb +1 -3
  62. data/spec/fortnox/api/types/housework_types_spec.rb +54 -61
  63. data/spec/fortnox/api/types/model_spec.rb +3 -27
  64. data/spec/fortnox/api/types/order_row_spec.rb +2 -2
  65. data/spec/fortnox/api/types/required_spec.rb +6 -11
  66. data/spec/fortnox/api/types/sales_account_spec.rb +57 -0
  67. data/spec/fortnox/api_spec.rb +19 -124
  68. data/spec/spec_helper.rb +0 -14
  69. data/spec/support/helpers/configuration_helper.rb +30 -3
  70. data/spec/support/helpers.rb +1 -1
  71. data/spec/support/matchers/type/attribute_matcher.rb +2 -2
  72. data/spec/support/matchers/type/have_nullable_date_matcher.rb +6 -4
  73. data/spec/support/matchers/type/have_nullable_matcher.rb +1 -1
  74. data/spec/support/matchers/type/have_nullable_string_matcher.rb +5 -5
  75. data/spec/support/matchers/type/require_attribute_matcher.rb +5 -5
  76. data/spec/support/matchers/type/type_matcher.rb +1 -1
  77. data/spec/support/vcr_setup.rb +16 -0
  78. data/spec/vcr_cassettes/articles/all.yml +16 -43
  79. data/spec/vcr_cassettes/articles/find_by_hash_failure.yml +10 -12
  80. data/spec/vcr_cassettes/articles/find_failure.yml +10 -12
  81. data/spec/vcr_cassettes/articles/find_id_1.yml +13 -14
  82. data/spec/vcr_cassettes/articles/find_new.yml +14 -16
  83. data/spec/vcr_cassettes/articles/multi_param_find_by_hash.yml +13 -15
  84. data/spec/vcr_cassettes/articles/save_new.yml +13 -15
  85. data/spec/vcr_cassettes/articles/save_old.yml +14 -16
  86. data/spec/vcr_cassettes/articles/save_with_specially_named_attribute.yml +13 -15
  87. data/spec/vcr_cassettes/articles/search_by_name.yml +16 -15
  88. data/spec/vcr_cassettes/articles/search_miss.yml +10 -12
  89. data/spec/vcr_cassettes/articles/search_with_special_char.yml +10 -12
  90. data/spec/vcr_cassettes/articles/single_param_find_by_hash.yml +13 -27
  91. data/spec/vcr_cassettes/authentication/expired_token.yml +54 -0
  92. data/spec/vcr_cassettes/authentication/invalid_authorization.yml +57 -0
  93. data/spec/vcr_cassettes/authentication/invalid_refresh_token.yml +58 -0
  94. data/spec/vcr_cassettes/authentication/valid_request.yml +63 -0
  95. data/spec/vcr_cassettes/customers/all.yml +20 -127
  96. data/spec/vcr_cassettes/customers/find_by_hash_failure.yml +10 -12
  97. data/spec/vcr_cassettes/customers/find_failure.yml +10 -12
  98. data/spec/vcr_cassettes/customers/find_id_1.yml +14 -15
  99. data/spec/vcr_cassettes/customers/find_new.yml +13 -15
  100. data/spec/vcr_cassettes/customers/find_with_sales_account.yml +63 -0
  101. data/spec/vcr_cassettes/customers/multi_param_find_by_hash.yml +13 -15
  102. data/spec/vcr_cassettes/customers/save_new.yml +12 -14
  103. data/spec/vcr_cassettes/customers/save_new_with_country_code_SE.yml +12 -14
  104. data/spec/vcr_cassettes/customers/save_new_with_sales_account.yml +63 -0
  105. data/spec/vcr_cassettes/customers/save_old.yml +13 -15
  106. data/spec/vcr_cassettes/customers/save_with_specially_named_attribute.yml +12 -14
  107. data/spec/vcr_cassettes/customers/search_by_name.yml +13 -45
  108. data/spec/vcr_cassettes/customers/search_miss.yml +10 -12
  109. data/spec/vcr_cassettes/customers/search_with_special_char.yml +10 -12
  110. data/spec/vcr_cassettes/customers/single_param_find_by_hash.yml +14 -16
  111. data/spec/vcr_cassettes/invoices/all.yml +47 -112
  112. data/spec/vcr_cassettes/invoices/filter_hit.yml +14 -18
  113. data/spec/vcr_cassettes/invoices/filter_invalid.yml +10 -12
  114. data/spec/vcr_cassettes/invoices/find_by_hash_failure.yml +10 -12
  115. data/spec/vcr_cassettes/invoices/find_failure.yml +10 -12
  116. data/spec/vcr_cassettes/invoices/find_id_1.yml +15 -16
  117. data/spec/vcr_cassettes/invoices/find_new.yml +16 -18
  118. data/spec/vcr_cassettes/invoices/multi_param_find_by_hash.yml +13 -15
  119. data/spec/vcr_cassettes/invoices/row_description_limit.yml +65 -0
  120. data/spec/vcr_cassettes/invoices/save_new.yml +14 -16
  121. data/spec/vcr_cassettes/invoices/save_new_with_comments.yml +14 -16
  122. data/spec/vcr_cassettes/invoices/save_new_with_country.yml +14 -15
  123. data/spec/vcr_cassettes/invoices/save_new_with_country_GB.yml +15 -16
  124. data/spec/vcr_cassettes/invoices/save_new_with_country_Norge.yml +14 -15
  125. data/spec/vcr_cassettes/invoices/save_new_with_country_Norway.yml +14 -15
  126. data/spec/vcr_cassettes/invoices/save_new_with_country_Sverige.yml +14 -15
  127. data/spec/vcr_cassettes/invoices/save_new_with_country_VA.yml +15 -16
  128. data/spec/vcr_cassettes/invoices/save_new_with_country_VI.yml +15 -16
  129. data/spec/vcr_cassettes/invoices/save_new_with_country_empty_string.yml +14 -15
  130. data/spec/vcr_cassettes/invoices/save_new_with_country_nil.yml +14 -15
  131. data/spec/vcr_cassettes/invoices/save_new_with_unsaved_parent.yml +65 -0
  132. data/spec/vcr_cassettes/invoices/save_old.yml +16 -18
  133. data/spec/vcr_cassettes/invoices/save_old_with_empty_comments.yml +16 -18
  134. data/spec/vcr_cassettes/invoices/save_old_with_empty_country.yml +16 -17
  135. data/spec/vcr_cassettes/invoices/save_old_with_nil_comments.yml +16 -18
  136. data/spec/vcr_cassettes/invoices/save_old_with_nil_country.yml +16 -17
  137. data/spec/vcr_cassettes/invoices/save_with_nested_model.yml +15 -16
  138. data/spec/vcr_cassettes/invoices/save_with_specially_named_attribute.yml +14 -15
  139. data/spec/vcr_cassettes/invoices/search_by_name.yml +13 -21
  140. data/spec/vcr_cassettes/invoices/search_miss.yml +10 -12
  141. data/spec/vcr_cassettes/invoices/search_with_special_char.yml +10 -12
  142. data/spec/vcr_cassettes/invoices/single_param_find_by_hash.yml +14 -16
  143. data/spec/vcr_cassettes/orders/all.yml +19 -113
  144. data/spec/vcr_cassettes/orders/filter_hit.yml +14 -20
  145. data/spec/vcr_cassettes/orders/filter_invalid.yml +10 -12
  146. data/spec/vcr_cassettes/orders/find_by_hash_failure.yml +10 -12
  147. data/spec/vcr_cassettes/orders/find_failure.yml +10 -12
  148. data/spec/vcr_cassettes/orders/find_id_1.yml +17 -17
  149. data/spec/vcr_cassettes/orders/find_new.yml +16 -18
  150. data/spec/vcr_cassettes/orders/housework_invalid_tax_reduction_type.yml +11 -13
  151. data/spec/vcr_cassettes/orders/housework_othercoses_invalid.yml +11 -13
  152. data/spec/vcr_cassettes/orders/housework_type_babysitting.yml +15 -16
  153. data/spec/vcr_cassettes/orders/housework_type_cleaning.yml +15 -16
  154. data/spec/vcr_cassettes/orders/housework_type_construction.yml +15 -16
  155. data/spec/vcr_cassettes/orders/housework_type_cooking.yml +11 -13
  156. data/spec/vcr_cassettes/orders/housework_type_electricity.yml +15 -16
  157. data/spec/vcr_cassettes/orders/housework_type_gardening.yml +15 -16
  158. data/spec/vcr_cassettes/orders/housework_type_glassmetalwork.yml +15 -16
  159. data/spec/vcr_cassettes/orders/housework_type_grounddrainagework.yml +15 -16
  160. data/spec/vcr_cassettes/orders/housework_type_hvac.yml +15 -16
  161. data/spec/vcr_cassettes/orders/housework_type_itservices.yml +15 -16
  162. data/spec/vcr_cassettes/orders/housework_type_majorappliancerepair.yml +15 -16
  163. data/spec/vcr_cassettes/orders/housework_type_masonry.yml +15 -16
  164. data/spec/vcr_cassettes/orders/housework_type_movingservices.yml +15 -16
  165. data/spec/vcr_cassettes/orders/housework_type_othercare.yml +15 -16
  166. data/spec/vcr_cassettes/orders/housework_type_othercosts.yml +15 -16
  167. data/spec/vcr_cassettes/orders/housework_type_paintingwallpapering.yml +15 -16
  168. data/spec/vcr_cassettes/orders/housework_type_snowplowing.yml +15 -16
  169. data/spec/vcr_cassettes/orders/housework_type_textileclothing.yml +15 -16
  170. data/spec/vcr_cassettes/orders/housework_type_tutoring.yml +11 -13
  171. data/spec/vcr_cassettes/orders/multi_param_find_by_hash.yml +13 -15
  172. data/spec/vcr_cassettes/orders/save_new.yml +16 -18
  173. data/spec/vcr_cassettes/orders/save_old.yml +16 -18
  174. data/spec/vcr_cassettes/orders/save_with_nested_model.yml +15 -16
  175. data/spec/vcr_cassettes/orders/search_by_name.yml +13 -17
  176. data/spec/vcr_cassettes/orders/search_miss.yml +10 -12
  177. data/spec/vcr_cassettes/orders/search_with_special_char.yml +10 -12
  178. data/spec/vcr_cassettes/orders/single_param_find_by_hash.yml +14 -16
  179. data/spec/vcr_cassettes/projects/all.yml +14 -37
  180. data/spec/vcr_cassettes/projects/find_by_hash_failure.yml +10 -12
  181. data/spec/vcr_cassettes/projects/find_failure.yml +10 -12
  182. data/spec/vcr_cassettes/projects/find_id_1.yml +13 -15
  183. data/spec/vcr_cassettes/projects/find_new.yml +14 -16
  184. data/spec/vcr_cassettes/projects/multi_param_find_by_hash.yml +15 -16
  185. data/spec/vcr_cassettes/projects/save_new.yml +13 -15
  186. data/spec/vcr_cassettes/projects/save_old.yml +14 -16
  187. data/spec/vcr_cassettes/projects/single_param_find_by_hash.yml +12 -14
  188. data/spec/vcr_cassettes/termsofpayments/all.yml +16 -23
  189. data/spec/vcr_cassettes/termsofpayments/find_failure.yml +10 -12
  190. data/spec/vcr_cassettes/termsofpayments/find_id_1.yml +13 -16
  191. data/spec/vcr_cassettes/termsofpayments/find_new.yml +12 -14
  192. data/spec/vcr_cassettes/termsofpayments/save_new.yml +12 -14
  193. data/spec/vcr_cassettes/termsofpayments/save_old.yml +12 -14
  194. data/spec/vcr_cassettes/units/all.yml +13 -24
  195. data/spec/vcr_cassettes/units/find_failure.yml +10 -12
  196. data/spec/vcr_cassettes/units/find_id_1.yml +13 -15
  197. data/spec/vcr_cassettes/units/find_new.yml +12 -14
  198. data/spec/vcr_cassettes/units/save_new.yml +12 -14
  199. data/spec/vcr_cassettes/units/save_old.yml +12 -14
  200. data/spec/vcr_cassettes/units/save_with_specially_named_attribute.yml +12 -14
  201. metadata +39 -230
  202. data/lib/fortnox/api/circular_queue.rb +0 -39
  203. data/spec/fortnox/api/circular_queue_spec.rb +0 -52
  204. data/spec/support/helpers/when_performing_helper.rb +0 -7
  205. 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.8.2
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: 2024-01-24 00:00:00.000000000 Z
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.17'
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.17'
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 be easilypersistable to Fortnox again using the `save` method.
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
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Helpers
4
- def when_performing(&block)
5
- block.to_proc
6
- end
7
- end
data/temp.txt DELETED
@@ -1 +0,0 @@
1
- temp2