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.
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