fortnox-api 0.5.2 → 0.6.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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.rubocop.yml +9 -1104
  4. data/.travis.yml +22 -2
  5. data/Gemfile +3 -1
  6. data/Guardfile +4 -2
  7. data/README.md +2 -2
  8. data/Rakefile +3 -1
  9. data/bin/console +17 -3
  10. data/fortnox-api.gemspec +32 -27
  11. data/lib/fortnox/api.rb +17 -16
  12. data/lib/fortnox/api/circular_queue.rb +13 -7
  13. data/lib/fortnox/api/mappers.rb +29 -25
  14. data/lib/fortnox/api/mappers/article.rb +7 -6
  15. data/lib/fortnox/api/mappers/base.rb +18 -16
  16. data/lib/fortnox/api/mappers/base/from_json.rb +37 -30
  17. data/lib/fortnox/api/mappers/base/to_json.rb +39 -37
  18. data/lib/fortnox/api/mappers/customer.rb +7 -7
  19. data/lib/fortnox/api/mappers/default_delivery_types.rb +4 -2
  20. data/lib/fortnox/api/mappers/default_templates.rb +5 -4
  21. data/lib/fortnox/api/mappers/edi_information.rb +5 -4
  22. data/lib/fortnox/api/mappers/email_information.rb +5 -4
  23. data/lib/fortnox/api/mappers/invoice.rb +10 -8
  24. data/lib/fortnox/api/mappers/invoice_row.rb +12 -7
  25. data/lib/fortnox/api/mappers/order.rb +10 -7
  26. data/lib/fortnox/api/mappers/order_row.rb +13 -6
  27. data/lib/fortnox/api/mappers/project.rb +6 -4
  28. data/lib/fortnox/api/mappers/terms_of_payments.rb +17 -0
  29. data/lib/fortnox/api/mappers/unit.rb +17 -0
  30. data/lib/fortnox/api/models.rb +9 -5
  31. data/lib/fortnox/api/models/article.rb +68 -67
  32. data/lib/fortnox/api/models/base.rb +52 -36
  33. data/lib/fortnox/api/models/customer.rb +95 -94
  34. data/lib/fortnox/api/models/document.rb +186 -0
  35. data/lib/fortnox/api/models/invoice.rb +44 -44
  36. data/lib/fortnox/api/models/label.rb +5 -3
  37. data/lib/fortnox/api/models/order.rb +8 -8
  38. data/lib/fortnox/api/models/project.rb +10 -8
  39. data/lib/fortnox/api/models/terms_of_payments.rb +28 -0
  40. data/lib/fortnox/api/models/unit.rb +24 -0
  41. data/lib/fortnox/api/repositories.rb +9 -5
  42. data/lib/fortnox/api/repositories/article.rb +6 -4
  43. data/lib/fortnox/api/repositories/base.rb +49 -46
  44. data/lib/fortnox/api/repositories/base/loaders.rb +32 -36
  45. data/lib/fortnox/api/repositories/base/savers.rb +23 -21
  46. data/lib/fortnox/api/repositories/customer.rb +6 -4
  47. data/lib/fortnox/api/repositories/invoice.rb +6 -4
  48. data/lib/fortnox/api/repositories/order.rb +6 -4
  49. data/lib/fortnox/api/repositories/project.rb +6 -4
  50. data/lib/fortnox/api/repositories/terms_of_payments.rb +17 -0
  51. data/lib/fortnox/api/repositories/unit.rb +17 -0
  52. data/lib/fortnox/api/request_handling.rb +12 -12
  53. data/lib/fortnox/api/types.rb +62 -11
  54. data/lib/fortnox/api/types/default_delivery_types.rb +5 -3
  55. data/lib/fortnox/api/types/default_templates.rb +3 -1
  56. data/lib/fortnox/api/types/defaulted.rb +2 -2
  57. data/lib/fortnox/api/types/document_row.rb +41 -42
  58. data/lib/fortnox/api/types/edi_information.rb +10 -8
  59. data/lib/fortnox/api/types/email_information.rb +10 -8
  60. data/lib/fortnox/api/types/enums.rb +60 -47
  61. data/lib/fortnox/api/types/invoice_row.rb +8 -8
  62. data/lib/fortnox/api/types/model.rb +14 -10
  63. data/lib/fortnox/api/types/nullable.rb +7 -7
  64. data/lib/fortnox/api/types/order_row.rb +5 -5
  65. data/lib/fortnox/api/types/required.rb +5 -5
  66. data/lib/fortnox/api/types/sized.rb +14 -6
  67. data/lib/fortnox/api/version.rb +3 -1
  68. data/spec/fortnox/api/mappers/article_spec.rb +3 -1
  69. data/spec/fortnox/api/mappers/base/from_json_spec.rb +15 -13
  70. data/spec/fortnox/api/mappers/base/to_json_spec.rb +4 -3
  71. data/spec/fortnox/api/mappers/base_spec.rb +40 -35
  72. data/spec/fortnox/api/mappers/contexts/json_conversion.rb +12 -11
  73. data/spec/fortnox/api/mappers/customer_spec.rb +3 -1
  74. data/spec/fortnox/api/mappers/default_delivery_types_spec.rb +3 -1
  75. data/spec/fortnox/api/mappers/edi_information_spec.rb +4 -2
  76. data/spec/fortnox/api/mappers/email_information_spec.rb +4 -2
  77. data/spec/fortnox/api/mappers/examples/mapper.rb +17 -9
  78. data/spec/fortnox/api/mappers/invoice_row_spec.rb +8 -3
  79. data/spec/fortnox/api/mappers/invoice_spec.rb +4 -1
  80. data/spec/fortnox/api/mappers/order_row_spec.rb +9 -2
  81. data/spec/fortnox/api/mappers/order_spec.rb +4 -1
  82. data/spec/fortnox/api/mappers/project_spec.rb +3 -1
  83. data/spec/fortnox/api/mappers/terms_of_payments_spec.rb +16 -0
  84. data/spec/fortnox/api/mappers/unit_spec.rb +57 -0
  85. data/spec/fortnox/api/models/article_spec.rb +2 -0
  86. data/spec/fortnox/api/models/base_spec.rb +46 -38
  87. data/spec/fortnox/api/models/customer_spec.rb +2 -0
  88. data/spec/fortnox/api/models/examples/document_base.rb +5 -3
  89. data/spec/fortnox/api/models/examples/model.rb +12 -9
  90. data/spec/fortnox/api/models/invoice_spec.rb +2 -0
  91. data/spec/fortnox/api/models/order_spec.rb +2 -0
  92. data/spec/fortnox/api/models/project_spec.rb +2 -0
  93. data/spec/fortnox/api/models/terms_of_payments_spec.rb +9 -0
  94. data/spec/fortnox/api/models/unit_spec.rb +31 -0
  95. data/spec/fortnox/api/repositories/article_spec.rb +7 -5
  96. data/spec/fortnox/api/repositories/base_spec.rb +121 -100
  97. data/spec/fortnox/api/repositories/customer_spec.rb +7 -5
  98. data/spec/fortnox/api/repositories/examples/all.rb +5 -4
  99. data/spec/fortnox/api/repositories/examples/find.rb +50 -41
  100. data/spec/fortnox/api/repositories/examples/only.rb +14 -13
  101. data/spec/fortnox/api/repositories/examples/save.rb +23 -29
  102. data/spec/fortnox/api/repositories/examples/save_with_nested_model.rb +11 -11
  103. data/spec/fortnox/api/repositories/examples/save_with_specially_named_attribute.rb +11 -10
  104. data/spec/fortnox/api/repositories/examples/search.rb +15 -15
  105. data/spec/fortnox/api/repositories/invoice_spec.rb +8 -6
  106. data/spec/fortnox/api/repositories/order_spec.rb +8 -6
  107. data/spec/fortnox/api/repositories/project_spec.rb +7 -5
  108. data/spec/fortnox/api/repositories/terms_of_payments_spec.rb +30 -0
  109. data/spec/fortnox/api/repositories/unit_spec.rb +34 -0
  110. data/spec/fortnox/api/types/account_number_spec.rb +12 -9
  111. data/spec/fortnox/api/types/default_delivery_types_spec.rb +6 -4
  112. data/spec/fortnox/api/types/edi_information_spec.rb +9 -7
  113. data/spec/fortnox/api/types/email_information_spec.rb +8 -6
  114. data/spec/fortnox/api/types/email_spec.rb +27 -14
  115. data/spec/fortnox/api/types/enums_spec.rb +3 -1
  116. data/spec/fortnox/api/types/examples/document_row.rb +10 -8
  117. data/spec/fortnox/api/types/examples/enum.rb +29 -22
  118. data/spec/fortnox/api/types/examples/types.rb +8 -4
  119. data/spec/fortnox/api/types/housework_types_spec.rb +68 -0
  120. data/spec/fortnox/api/types/invoice_row_spec.rb +3 -1
  121. data/spec/fortnox/api/types/model_spec.rb +12 -9
  122. data/spec/fortnox/api/types/nullable_spec.rb +8 -6
  123. data/spec/fortnox/api/types/order_row_spec.rb +4 -2
  124. data/spec/fortnox/api/types/required_spec.rb +4 -2
  125. data/spec/fortnox/api/types/sized_spec.rb +18 -16
  126. data/spec/fortnox/api_spec.rb +45 -43
  127. data/spec/spec_helper.rb +9 -6
  128. data/spec/support/helpers.rb +3 -1
  129. data/spec/support/helpers/configuration_helper.rb +2 -0
  130. data/spec/support/helpers/dummy_class_helper.rb +7 -8
  131. data/spec/support/helpers/repository_helper.rb +2 -0
  132. data/spec/support/helpers/when_performing_helper.rb +3 -1
  133. data/spec/support/matchers.rb +2 -0
  134. data/spec/support/matchers/type.rb +3 -1
  135. data/spec/support/matchers/type/attribute_matcher.rb +15 -14
  136. data/spec/support/matchers/type/enum_matcher.rb +9 -7
  137. data/spec/support/matchers/type/have_account_number_matcher.rb +11 -9
  138. data/spec/support/matchers/type/have_country_code_matcher.rb +6 -4
  139. data/spec/support/matchers/type/have_currency_matcher.rb +4 -2
  140. data/spec/support/matchers/type/have_customer_type_matcher.rb +6 -4
  141. data/spec/support/matchers/type/have_default_delivery_type_matcher.rb +4 -2
  142. data/spec/support/matchers/type/have_discount_type_matcher.rb +4 -2
  143. data/spec/support/matchers/type/have_email_matcher.rb +11 -9
  144. data/spec/support/matchers/type/have_housework_type_matcher.rb +9 -0
  145. data/spec/support/matchers/type/have_nullable_date_matcher.rb +29 -29
  146. data/spec/support/matchers/type/have_nullable_matcher.rb +23 -21
  147. data/spec/support/matchers/type/have_nullable_string_matcher.rb +30 -32
  148. data/spec/support/matchers/type/have_sized_float_matcher.rb +4 -2
  149. data/spec/support/matchers/type/have_sized_integer_matcher.rb +4 -2
  150. data/spec/support/matchers/type/have_sized_string_matcher.rb +16 -15
  151. data/spec/support/matchers/type/have_vat_type_matcher.rb +4 -2
  152. data/spec/support/matchers/type/numeric_matcher.rb +25 -23
  153. data/spec/support/matchers/type/require_attribute_matcher.rb +36 -37
  154. data/spec/support/matchers/type/type_matcher.rb +18 -16
  155. data/spec/support/vcr_setup.rb +2 -0
  156. data/spec/vcr_cassettes/orders/{house_work_type_babysitting.yml → housework_type_babysitting.yml} +9 -10
  157. data/spec/vcr_cassettes/orders/{house_work_type_cleaning.yml → housework_type_cleaning.yml} +9 -10
  158. data/spec/vcr_cassettes/orders/{house_work_type_construction.yml → housework_type_construction.yml} +9 -10
  159. data/spec/vcr_cassettes/orders/{house_work_type_cooking.yml → housework_type_cooking.yml} +7 -7
  160. data/spec/vcr_cassettes/orders/{house_work_type_electricity.yml → housework_type_electricity.yml} +9 -10
  161. data/spec/vcr_cassettes/orders/{house_work_type_gardening.yml → housework_type_gardening.yml} +9 -10
  162. data/spec/vcr_cassettes/orders/{house_work_type_glassmetalwork.yml → housework_type_glassmetalwork.yml} +9 -10
  163. data/spec/vcr_cassettes/orders/{house_work_type_grounddrainagework.yml → housework_type_grounddrainagework.yml} +9 -10
  164. data/spec/vcr_cassettes/orders/{house_work_type_hvac.yml → housework_type_hvac.yml} +9 -10
  165. data/spec/vcr_cassettes/orders/{house_work_type_masonry.yml → housework_type_masonry.yml} +9 -10
  166. data/spec/vcr_cassettes/orders/{house_work_type_othercare.yml → housework_type_othercare.yml} +9 -10
  167. data/spec/vcr_cassettes/orders/{house_work_type_othercosts.yml → housework_type_othercosts.yml} +9 -10
  168. data/spec/vcr_cassettes/orders/{house_work_type_paintingwallpapering.yml → housework_type_paintingwallpapering.yml} +9 -10
  169. data/spec/vcr_cassettes/orders/{house_work_type_snowplowing.yml → housework_type_snowplowing.yml} +9 -10
  170. data/spec/vcr_cassettes/orders/{house_work_type_textileclothing.yml → housework_type_textileclothing.yml} +9 -10
  171. data/spec/vcr_cassettes/orders/{house_work_type_tutoring.yml → housework_type_tutoring.yml} +7 -7
  172. data/spec/vcr_cassettes/termsofpayments/all.yml +51 -0
  173. data/spec/vcr_cassettes/termsofpayments/find_failure.yml +45 -0
  174. data/spec/vcr_cassettes/termsofpayments/find_id_1.yml +46 -0
  175. data/spec/vcr_cassettes/termsofpayments/find_new.yml +46 -0
  176. data/spec/vcr_cassettes/termsofpayments/save_new.yml +45 -0
  177. data/spec/vcr_cassettes/termsofpayments/save_old.yml +46 -0
  178. data/spec/vcr_cassettes/units/all.yml +48 -0
  179. data/spec/vcr_cassettes/units/find_failure.yml +45 -0
  180. data/spec/vcr_cassettes/units/find_id_1.yml +46 -0
  181. data/spec/vcr_cassettes/units/find_new.yml +48 -0
  182. data/spec/vcr_cassettes/units/save_new.yml +47 -0
  183. data/spec/vcr_cassettes/units/save_old.yml +48 -0
  184. data/spec/vcr_cassettes/units/save_with_specially_named_attribute.yml +47 -0
  185. metadata +127 -88
  186. data/docs/account.rb +0 -59
  187. data/docs/extraction_script.js +0 -23
  188. data/docs/generation_script.rb +0 -43
  189. data/docs/json/account.json +0 -77
  190. data/lib/fortnox/api/models/document_base.rb +0 -189
  191. data/spec/fortnox/api/types/house_work_types_spec.rb +0 -64
  192. data/spec/support/matchers/type/have_house_work_type_matcher.rb +0 -7
@@ -1,77 +1,84 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fortnox
2
4
  module API
3
5
  module Mapper
4
6
  module FromJSON
5
-
6
7
  class MissingModelOrMapperException < StandardError
7
8
  end
8
9
 
9
- def wrapped_json_collection_to_entities_hash( json_collection_hash )
10
+ def wrapped_json_collection_to_entities_hash(json_collection_hash)
10
11
  entities_hash = []
11
- json_collection_hash[ self.class::JSON_COLLECTION_WRAPPER ].each do |json_hash|
12
- entities_hash << json_hash_to_entity_hash( json_hash, self.class::KEY_MAP )
12
+ json_collection_hash[self.class::JSON_COLLECTION_WRAPPER].each do |json_hash|
13
+ entities_hash << json_hash_to_entity_hash(json_hash, self.class::KEY_MAP)
13
14
  end
14
15
 
15
16
  entities_hash
16
17
  end
17
18
 
18
- def wrapped_json_hash_to_entity_hash( json_entity_hash )
19
- json_hash_to_entity_hash( json_entity_hash[self.class::JSON_ENTITY_WRAPPER],
20
- self.class::KEY_MAP )
19
+ def wrapped_json_hash_to_entity_hash(json_entity_hash)
20
+ json_hash_to_entity_hash(json_entity_hash[self.class::JSON_ENTITY_WRAPPER],
21
+ self.class::KEY_MAP)
21
22
  end
22
23
 
23
24
  private
24
25
 
25
- def json_hash_to_entity_hash( hash, key_map )
26
- hash.each_with_object( {} ) do |(key, value), json_hash|
27
- converted_key = convert_key_from_json( key, key_map )
26
+ def json_hash_to_entity_hash(hash, key_map)
27
+ hash.each_with_object({}) do |(key, value), json_hash|
28
+ converted_key = convert_key_from_json(key, key_map)
28
29
  json_hash[converted_key] =
29
30
  if value.respond_to?(:each)
30
- convert_collection( key, value )
31
+ convert_collection(key, value)
31
32
  else
32
33
  value
33
34
  end
34
35
  end
35
36
  end
36
37
 
37
- def convert_collection( key, collection )
38
+ def convert_collection(key, collection)
38
39
  mapper_name = key.downcase
39
40
  if Registry.key?(mapper_name)
40
- convert_nested_data( mapper_name, key, collection )
41
+ convert_nested_data(mapper_name, key, collection)
41
42
  else
42
43
  # NOTE: This probably means this is a nested model that we have
43
44
  # not implemented yet, or that is missing a mapper.
44
45
  # Raise exception during test run if this happens so that we can
45
46
  # add it before a new release.
46
47
 
47
- raise MissingModelOrMapperException, "for #{ key } (#{ mapper_name }, #{ Fortnox::API::Mapper::DefaultTemplates.canonical_name_sym }) with #{ collection }" if ENV['RUBY_ENV']
48
- Fortnox::API.logger.warn( "Missing Model or Mapper implementation for #{ key } with attributes: #{ collection }" )
49
- return convert_hash_keys_from_json_format( collection, {} )
48
+ message = "for #{key} (#{mapper_name}, #{Fortnox::API::Mapper::DefaultTemplates.canonical_name_sym}) with"\
49
+ " #{collection}"
50
+
51
+ raise MissingModelOrMapperException, message if ENV['RUBY_ENV']
52
+ Fortnox::API.logger.warn("Missing Model or Mapper implementation for #{key} with attributes: #{collection}")
53
+ return convert_hash_keys_from_json_format(collection, {})
50
54
  end
51
55
  end
52
56
 
53
- def convert_nested_data( _mapper_name, key, nested_data )
54
- nested_mapper = Registry[ key.downcase ]
55
- if nested_data.is_a?(::Array) # Array of nested models
56
- return nested_data.each_with_object( [] ) do |value, nested_models|
57
- nested_models << json_hash_to_entity_hash( value, nested_mapper::KEY_MAP )
58
- end
59
- else # Assume Hash of nested model
60
- return json_hash_to_entity_hash( nested_data, nested_mapper::KEY_MAP )
57
+ def convert_nested_data(_mapper_name, key, nested_data)
58
+ nested_mapper = Registry[key.downcase]
59
+
60
+ # Assume Hash of nested model
61
+ return json_hash_to_entity_hash(nested_data, nested_mapper::KEY_MAP) unless nested_data.is_a?(::Array)
62
+
63
+ # Array of nested models
64
+ nested_data.each_with_object([]) do |value, nested_models|
65
+ nested_models << json_hash_to_entity_hash(value, nested_mapper::KEY_MAP)
61
66
  end
62
67
  end
63
68
 
64
- def convert_key_from_json( key, key_map )
65
- key_map.key( key ) || default_key_from_json_transform( key )
69
+ def convert_key_from_json(key, key_map)
70
+ key_map.key(key) || default_key_from_json_transform(key)
66
71
  end
67
72
 
68
- def default_key_from_json_transform( key )
73
+ def default_key_from_json_transform(key)
69
74
  key = key.to_s
70
- unless key =~ /\A[A-Z]+\z/
71
- key = key.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').gsub(/([a-z])([A-Z])/, '\1_\2')
72
- end
75
+ key = camelcase_to_underscore(key) unless key =~ /\A[A-Z]+\z/
73
76
  key.downcase.to_sym
74
77
  end
78
+
79
+ def camelcase_to_underscore(key)
80
+ key.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').gsub(/([a-z])([A-Z])/, '\1_\2')
81
+ end
75
82
  end
76
83
  end
77
84
  end
@@ -1,64 +1,66 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fortnox
2
4
  module API
3
5
  module Mapper
4
6
  module ToJSON
5
7
  def self.included(base)
6
- base.instance_eval do
8
+ base.send :extend, ClassMethods
7
9
 
8
- # PUBLIC
10
+ base.send :private_class_method,
11
+ :convert_hash_keys_to_json_format,
12
+ :convert_key_to_json,
13
+ :default_key_to_json_transform,
14
+ :sanitise
15
+ end
9
16
 
10
- def call( entity, keys_to_filter = {} )
11
- entity_hash = entity.to_hash
12
- clean_entity_hash = sanitise( entity_hash, keys_to_filter )
13
- clean_entity_hash = convert_hash_keys_to_json_format( clean_entity_hash )
14
- Registry[:hash].call( clean_entity_hash )
15
- end
17
+ module ClassMethods
18
+ def call(entity, keys_to_filter = {})
19
+ entity_hash = entity.to_hash
20
+ clean_entity_hash = sanitise(entity_hash, keys_to_filter)
21
+ clean_entity_hash = convert_hash_keys_to_json_format(clean_entity_hash)
22
+ Registry[:hash].call(clean_entity_hash)
23
+ end
16
24
 
17
- # PRIVATE
25
+ # PRIVATE
18
26
 
19
- def convert_hash_keys_to_json_format( hash )
20
- hash.each_with_object( {} ) do |(key, value), json_hash|
21
- json_hash[ convert_key_to_json( key ) ] = value
22
- end
27
+ def convert_hash_keys_to_json_format(hash)
28
+ hash.each_with_object({}) do |(key, value), json_hash|
29
+ json_hash[convert_key_to_json(key)] = value
23
30
  end
31
+ end
24
32
 
25
- def convert_key_to_json( key )
26
- self::KEY_MAP.fetch( key ){ default_key_to_json_transform( key ) }
27
- end
33
+ def convert_key_to_json(key)
34
+ self::KEY_MAP.fetch(key) { default_key_to_json_transform(key) }
35
+ end
28
36
 
29
- def default_key_to_json_transform( key )
30
- key.to_s.split('_').map(&:capitalize).join('')
31
- end
37
+ def default_key_to_json_transform(key)
38
+ key.to_s.split('_').map(&:capitalize).join('')
39
+ end
32
40
 
33
- def sanitise( hash, keys_to_filter )
34
- hash.select do |key, value|
35
- next false if keys_to_filter.include?( key )
36
- value != nil
37
- end
41
+ def sanitise(hash, keys_to_filter)
42
+ hash.reject do |key, value|
43
+ next false if keys_to_filter.include?(key)
44
+ value.nil?
38
45
  end
39
-
40
- private_class_method :convert_hash_keys_to_json_format,
41
- :convert_key_to_json,
42
- :default_key_to_json_transform,
43
- :sanitise
44
46
  end
45
47
  end
46
48
 
47
- def entity_to_hash( entity, keys_to_filter )
48
- entity_json_hash = Registry[ mapper_name_for( entity ) ]
49
- .call( entity, keys_to_filter )
50
- wrap_entity_json_hash( entity_json_hash )
49
+ def entity_to_hash(entity, keys_to_filter)
50
+ entity_json_hash = Registry[mapper_name_for(entity)]
51
+ .call(entity, keys_to_filter)
52
+ wrap_entity_json_hash(entity_json_hash)
51
53
  end
52
54
 
53
- def wrap_entity_json_hash( entity_json_hash )
55
+ def wrap_entity_json_hash(entity_json_hash)
54
56
  { self.class::JSON_ENTITY_WRAPPER => entity_json_hash }
55
57
  end
56
58
 
57
59
  private
58
60
 
59
- def mapper_name_for( value )
60
- value.class.name.split('::').last.downcase.to_sym
61
- end
61
+ def mapper_name_for(value)
62
+ value.class.name.split('::').last.downcase.to_sym
63
+ end
62
64
  end
63
65
  end
64
66
  end
@@ -1,10 +1,11 @@
1
- require "fortnox/api/mappers/base"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
2
4
 
3
5
  module Fortnox
4
6
  module API
5
7
  module Mapper
6
8
  class Customer < Fortnox::API::Mapper::Base
7
-
8
9
  KEY_MAP = {
9
10
  vat_type: 'VATType',
10
11
  vat_number: 'VATNumber',
@@ -14,14 +15,13 @@ module Fortnox
14
15
  email_offer_cc: 'EmailOfferCC',
15
16
  email_order_bcc: 'EmailOrderBCC',
16
17
  email_order_cc: 'EmailOrderCC',
17
- show_price_vat_included: 'ShowPriceVATIncluded',
18
+ show_price_vat_included: 'ShowPriceVATIncluded'
18
19
  }.freeze
19
- JSON_ENTITY_WRAPPER = 'Customer'.freeze
20
- JSON_COLLECTION_WRAPPER = 'Customers'.freeze
21
-
20
+ JSON_ENTITY_WRAPPER = 'Customer'
21
+ JSON_COLLECTION_WRAPPER = 'Customers'
22
22
  end
23
23
 
24
- Registry.register( Customer.canonical_name_sym, Customer )
24
+ Registry.register(Customer.canonical_name_sym, Customer)
25
25
  end
26
26
  end
27
27
  end
@@ -1,4 +1,6 @@
1
- require "fortnox/api/mappers/base"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
2
4
 
3
5
  module Fortnox
4
6
  module API
@@ -7,7 +9,7 @@ module Fortnox
7
9
  KEY_MAP = {}.freeze
8
10
  end
9
11
 
10
- Registry.register( DefaultDeliveryTypes.canonical_name_sym, DefaultDeliveryTypes )
12
+ Registry.register(DefaultDeliveryTypes.canonical_name_sym, DefaultDeliveryTypes)
11
13
  end
12
14
  end
13
15
  end
@@ -1,15 +1,16 @@
1
- require "fortnox/api/mappers/base"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
2
4
 
3
5
  module Fortnox
4
6
  module API
5
7
  module Mapper
6
8
  class DefaultTemplates < Fortnox::API::Mapper::Base
7
-
8
9
  KEY_MAP = {}.freeze
9
- JSON_ENTITY_WRAPPER = JSON_COLLECTION_WRAPPER = 'DefaultTemplates'.freeze
10
+ JSON_ENTITY_WRAPPER = JSON_COLLECTION_WRAPPER = 'DefaultTemplates'
10
11
  end
11
12
 
12
- Registry.register( DefaultTemplates.canonical_name_sym, DefaultTemplates )
13
+ Registry.register(DefaultTemplates.canonical_name_sym, DefaultTemplates)
13
14
  end
14
15
  end
15
16
  end
@@ -1,10 +1,11 @@
1
- require "fortnox/api/mappers/base"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
2
4
 
3
5
  module Fortnox
4
6
  module API
5
7
  module Mapper
6
8
  class EDIInformation < Fortnox::API::Mapper::Base
7
-
8
9
  KEY_MAP = {
9
10
  edi_global_location_number: 'EDIGlobalLocationNumber',
10
11
  edi_global_location_number_delivery: 'EDIGlobalLocationNumberDelivery',
@@ -13,10 +14,10 @@ module Fortnox
13
14
  edi_our_electronic_reference: 'EDIOurElectronicReference',
14
15
  edi_your_electronic_reference: 'EDIYourElectronicReference'
15
16
  }.freeze
16
- JSON_ENTITY_WRAPPER = JSON_COLLECTION_WRAPPER = 'EDIInformation'.freeze
17
+ JSON_ENTITY_WRAPPER = JSON_COLLECTION_WRAPPER = 'EDIInformation'
17
18
  end
18
19
 
19
- Registry.register( EDIInformation.canonical_name_sym, EDIInformation )
20
+ Registry.register(EDIInformation.canonical_name_sym, EDIInformation)
20
21
  end
21
22
  end
22
23
  end
@@ -1,18 +1,19 @@
1
- require "fortnox/api/mappers/base"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
2
4
 
3
5
  module Fortnox
4
6
  module API
5
7
  module Mapper
6
8
  class EmailInformation < Fortnox::API::Mapper::Base
7
-
8
9
  KEY_MAP = {
9
10
  email_address_bcc: 'EmailAddressBCC',
10
11
  email_address_cc: 'EmailAddressCC'
11
12
  }.freeze
12
- JSON_ENTITY_WRAPPER = JSON_COLLECTION_WRAPPER = 'EmailInformation'.freeze
13
+ JSON_ENTITY_WRAPPER = JSON_COLLECTION_WRAPPER = 'EmailInformation'
13
14
  end
14
15
 
15
- Registry.register( EmailInformation.canonical_name_sym, EmailInformation )
16
+ Registry.register(EmailInformation.canonical_name_sym, EmailInformation)
16
17
  end
17
18
  end
18
19
  end
@@ -1,27 +1,29 @@
1
- require "fortnox/api/mappers/base"
2
- require "fortnox/api/mappers/edi_information"
3
- require "fortnox/api/mappers/email_information"
4
- require "fortnox/api/mappers/invoice_row"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
4
+ require 'fortnox/api/mappers/edi_information'
5
+ require 'fortnox/api/mappers/email_information'
6
+ require 'fortnox/api/mappers/invoice_row'
5
7
 
6
8
  module Fortnox
7
9
  module API
8
10
  module Mapper
9
11
  class Invoice < Fortnox::API::Mapper::Base
10
-
11
12
  KEY_MAP = {
12
13
  administration_fee_vat: 'AdministrationFeeVAT',
13
14
  edi_information: 'EDIInformation',
14
15
  eu_quarterly_report: 'EUQuarterlyReport',
15
16
  freight_vat: 'FreightVAT',
17
+ housework: 'HouseWork',
16
18
  ocr: 'OCR',
17
19
  total_vat: 'TotalVAT',
18
20
  vat_included: 'VATIncluded'
19
21
  }.freeze
20
- JSON_ENTITY_WRAPPER = 'Invoice'.freeze
21
- JSON_COLLECTION_WRAPPER = 'Invoices'.freeze
22
+ JSON_ENTITY_WRAPPER = 'Invoice'
23
+ JSON_COLLECTION_WRAPPER = 'Invoices'
22
24
  end
23
25
 
24
- Registry.register( Invoice.canonical_name_sym, Invoice )
26
+ Registry.register(Invoice.canonical_name_sym, Invoice)
25
27
  end
26
28
  end
27
29
  end
@@ -1,20 +1,25 @@
1
- require "fortnox/api/mappers/base"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
2
4
 
3
5
  module Fortnox
4
6
  module API
5
7
  module Mapper
6
8
  class InvoiceRow < Fortnox::API::Mapper::Base
7
9
  KEY_MAP = {
8
- vat: 'VAT',
10
+ housework: 'HouseWork',
11
+ housework_hours_to_report: 'HouseWorkHoursToReport',
12
+ housework_type: 'HouseWorkType',
9
13
  price_excluding_vat: 'PriceExcludingVAT',
10
- total_excluding_vat: 'TotalExcludingVAT'
14
+ total_excluding_vat: 'TotalExcludingVAT',
15
+ vat: 'VAT'
11
16
  }.freeze
12
- JSON_ENTITY_WRAPPER = 'InvoiceRow'.freeze
13
- JSON_COLLECTION_WRAPPER = 'InvoiceRows'.freeze
17
+ JSON_ENTITY_WRAPPER = 'InvoiceRow'
18
+ JSON_COLLECTION_WRAPPER = 'InvoiceRows'
14
19
  end
15
20
 
16
- Registry.register( InvoiceRow.canonical_name_sym, InvoiceRow )
17
- Registry.register( :invoicerows, InvoiceRow )
21
+ Registry.register(InvoiceRow.canonical_name_sym, InvoiceRow)
22
+ Registry.register(:invoicerows, InvoiceRow)
18
23
  end
19
24
  end
20
25
  end
@@ -1,7 +1,9 @@
1
- require "fortnox/api/mappers/base"
2
- require "fortnox/api/mappers/edi_information"
3
- require "fortnox/api/mappers/email_information"
4
- require "fortnox/api/mappers/order_row"
1
+ # frozen_string_literal: true
2
+
3
+ require 'fortnox/api/mappers/base'
4
+ require 'fortnox/api/mappers/edi_information'
5
+ require 'fortnox/api/mappers/email_information'
6
+ require 'fortnox/api/mappers/order_row'
5
7
 
6
8
  module Fortnox
7
9
  module API
@@ -10,14 +12,15 @@ module Fortnox
10
12
  KEY_MAP = {
11
13
  administration_fee_vat: 'AdministrationFeeVAT',
12
14
  freight_vat: 'FreightVAT',
15
+ housework: 'HouseWork',
13
16
  total_vat: 'TotalVAT',
14
17
  vat_included: 'VATIncluded'
15
18
  }.freeze
16
- JSON_ENTITY_WRAPPER = 'Order'.freeze
17
- JSON_COLLECTION_WRAPPER = 'Orders'.freeze
19
+ JSON_ENTITY_WRAPPER = 'Order'
20
+ JSON_COLLECTION_WRAPPER = 'Orders'
18
21
  end
19
22
 
20
- Registry.register( Order.canonical_name_sym, Order )
23
+ Registry.register(Order.canonical_name_sym, Order)
21
24
  end
22
25
  end
23
26
  end