apimatic-pnl-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +164 -0
  4. data/bin/console +15 -0
  5. data/lib/postnl_ecommerce/api_helper.rb +10 -0
  6. data/lib/postnl_ecommerce/client.rb +126 -0
  7. data/lib/postnl_ecommerce/configuration.rb +195 -0
  8. data/lib/postnl_ecommerce/controllers/barcode_controller.rb +71 -0
  9. data/lib/postnl_ecommerce/controllers/base_controller.rb +60 -0
  10. data/lib/postnl_ecommerce/controllers/checkout_controller.rb +45 -0
  11. data/lib/postnl_ecommerce/controllers/confirming_controller.rb +45 -0
  12. data/lib/postnl_ecommerce/controllers/deliverydate_controller.rb +233 -0
  13. data/lib/postnl_ecommerce/controllers/labelling_controller.rb +52 -0
  14. data/lib/postnl_ecommerce/controllers/locations_controller.rb +271 -0
  15. data/lib/postnl_ecommerce/controllers/postalcode_check_controller.rb +60 -0
  16. data/lib/postnl_ecommerce/controllers/shipment_controller.rb +52 -0
  17. data/lib/postnl_ecommerce/controllers/shipping_status_controller.rb +222 -0
  18. data/lib/postnl_ecommerce/controllers/timeframes_controller.rb +90 -0
  19. data/lib/postnl_ecommerce/exceptions/api_exception.rb +21 -0
  20. data/lib/postnl_ecommerce/exceptions/barcode_response_invalid_exception.rb +57 -0
  21. data/lib/postnl_ecommerce/exceptions/confirming_response_error_exception.rb +55 -0
  22. data/lib/postnl_ecommerce/exceptions/internal_server_error_exception.rb +46 -0
  23. data/lib/postnl_ecommerce/exceptions/invalid_request_exception.rb +62 -0
  24. data/lib/postnl_ecommerce/exceptions/labelling_response_invalid_exception.rb +57 -0
  25. data/lib/postnl_ecommerce/exceptions/method_not_allowed_only_get_exception.rb +53 -0
  26. data/lib/postnl_ecommerce/exceptions/method_not_allowed_only_get_post_exception.rb +53 -0
  27. data/lib/postnl_ecommerce/exceptions/method_not_allowed_only_post_exception.rb +53 -0
  28. data/lib/postnl_ecommerce/exceptions/postalcode_check_response_invalid_exception.rb +55 -0
  29. data/lib/postnl_ecommerce/exceptions/too_many_requests_exception.rb +53 -0
  30. data/lib/postnl_ecommerce/exceptions/unauthorized_exception.rb +53 -0
  31. data/lib/postnl_ecommerce/http/api_response.rb +19 -0
  32. data/lib/postnl_ecommerce/http/auth/custom_header_authentication.rb +52 -0
  33. data/lib/postnl_ecommerce/http/http_call_back.rb +10 -0
  34. data/lib/postnl_ecommerce/http/http_method_enum.rb +10 -0
  35. data/lib/postnl_ecommerce/http/http_request.rb +10 -0
  36. data/lib/postnl_ecommerce/http/http_response.rb +10 -0
  37. data/lib/postnl_ecommerce/http/proxy_settings.rb +22 -0
  38. data/lib/postnl_ecommerce/models/address.rb +240 -0
  39. data/lib/postnl_ecommerce/models/address_type_enum.rb +36 -0
  40. data/lib/postnl_ecommerce/models/amount.rb +138 -0
  41. data/lib/postnl_ecommerce/models/barcode_error.rb +71 -0
  42. data/lib/postnl_ecommerce/models/barcode_response.rb +62 -0
  43. data/lib/postnl_ecommerce/models/base_model.rb +110 -0
  44. data/lib/postnl_ecommerce/models/checkout_address.rb +120 -0
  45. data/lib/postnl_ecommerce/models/checkout_cut_off_day_enum.rb +61 -0
  46. data/lib/postnl_ecommerce/models/checkout_cut_off_time.rb +91 -0
  47. data/lib/postnl_ecommerce/models/checkout_cut_off_type_enum.rb +40 -0
  48. data/lib/postnl_ecommerce/models/checkout_delivery_option.rb +81 -0
  49. data/lib/postnl_ecommerce/models/checkout_location.rb +126 -0
  50. data/lib/postnl_ecommerce/models/checkout_option_enum.rb +64 -0
  51. data/lib/postnl_ecommerce/models/checkout_pickup_address.rb +112 -0
  52. data/lib/postnl_ecommerce/models/checkout_pickup_option.rb +103 -0
  53. data/lib/postnl_ecommerce/models/checkout_request.rb +152 -0
  54. data/lib/postnl_ecommerce/models/checkout_response.rb +110 -0
  55. data/lib/postnl_ecommerce/models/checkout_time_frame.rb +108 -0
  56. data/lib/postnl_ecommerce/models/checkout_warning.rb +95 -0
  57. data/lib/postnl_ecommerce/models/checkout_warning_option_enum.rb +68 -0
  58. data/lib/postnl_ecommerce/models/code_enum.rb +44 -0
  59. data/lib/postnl_ecommerce/models/complete_status.rb +62 -0
  60. data/lib/postnl_ecommerce/models/complete_status_shipment.rb +270 -0
  61. data/lib/postnl_ecommerce/models/confirming_custom.rb +239 -0
  62. data/lib/postnl_ecommerce/models/confirming_custom_content.rb +113 -0
  63. data/lib/postnl_ecommerce/models/confirming_error.rb +71 -0
  64. data/lib/postnl_ecommerce/models/confirming_message.rb +70 -0
  65. data/lib/postnl_ecommerce/models/confirming_request.rb +86 -0
  66. data/lib/postnl_ecommerce/models/confirming_response.rb +71 -0
  67. data/lib/postnl_ecommerce/models/confirming_response_shipment.rb +103 -0
  68. data/lib/postnl_ecommerce/models/confirming_shipment.rb +472 -0
  69. data/lib/postnl_ecommerce/models/contact.rb +101 -0
  70. data/lib/postnl_ecommerce/models/countrycode_enum.rb +36 -0
  71. data/lib/postnl_ecommerce/models/currency_enum.rb +44 -0
  72. data/lib/postnl_ecommerce/models/currency_labelling_api_enum.rb +36 -0
  73. data/lib/postnl_ecommerce/models/current_status.rb +62 -0
  74. data/lib/postnl_ecommerce/models/current_status_shipment.rb +207 -0
  75. data/lib/postnl_ecommerce/models/customer.rb +123 -0
  76. data/lib/postnl_ecommerce/models/customer_address.rb +237 -0
  77. data/lib/postnl_ecommerce/models/customs.rb +238 -0
  78. data/lib/postnl_ecommerce/models/customs_labelling_api.rb +238 -0
  79. data/lib/postnl_ecommerce/models/delivery_options.rb +64 -0
  80. data/lib/postnl_ecommerce/models/deliverydate_delivery_response.rb +87 -0
  81. data/lib/postnl_ecommerce/models/deliverydate_option_enum.rb +56 -0
  82. data/lib/postnl_ecommerce/models/deliverydate_options.rb +65 -0
  83. data/lib/postnl_ecommerce/models/deliverydate_shipping_response.rb +62 -0
  84. data/lib/postnl_ecommerce/models/detail.rb +62 -0
  85. data/lib/postnl_ecommerce/models/dimension.rb +106 -0
  86. data/lib/postnl_ecommerce/models/error.rb +73 -0
  87. data/lib/postnl_ecommerce/models/event.rb +127 -0
  88. data/lib/postnl_ecommerce/models/expectation.rb +71 -0
  89. data/lib/postnl_ecommerce/models/extra_field.rb +71 -0
  90. data/lib/postnl_ecommerce/models/fault.rb +71 -0
  91. data/lib/postnl_ecommerce/models/fault_shipping_status_api.rb +71 -0
  92. data/lib/postnl_ecommerce/models/friday.rb +62 -0
  93. data/lib/postnl_ecommerce/models/get_locations_result_multiple.rb +71 -0
  94. data/lib/postnl_ecommerce/models/get_locations_result_single.rb +62 -0
  95. data/lib/postnl_ecommerce/models/group.rb +97 -0
  96. data/lib/postnl_ecommerce/models/hazardous_material.rb +178 -0
  97. data/lib/postnl_ecommerce/models/labelling_customer.rb +123 -0
  98. data/lib/postnl_ecommerce/models/labelling_customer_labelling_api.rb +123 -0
  99. data/lib/postnl_ecommerce/models/labelling_customer_message.rb +83 -0
  100. data/lib/postnl_ecommerce/models/labelling_customer_shipment.rb +484 -0
  101. data/lib/postnl_ecommerce/models/labelling_customer_shipment_labelling_api.rb +484 -0
  102. data/lib/postnl_ecommerce/models/labelling_customs_content.rb +111 -0
  103. data/lib/postnl_ecommerce/models/labelling_error.rb +81 -0
  104. data/lib/postnl_ecommerce/models/labelling_label.rb +84 -0
  105. data/lib/postnl_ecommerce/models/labelling_merged_label.rb +80 -0
  106. data/lib/postnl_ecommerce/models/labelling_request.rb +112 -0
  107. data/lib/postnl_ecommerce/models/labelling_response.rb +95 -0
  108. data/lib/postnl_ecommerce/models/labelling_response_shipment.rb +123 -0
  109. data/lib/postnl_ecommerce/models/language_enum.rb +48 -0
  110. data/lib/postnl_ecommerce/models/location.rb +174 -0
  111. data/lib/postnl_ecommerce/models/location_response_single.rb +63 -0
  112. data/lib/postnl_ecommerce/models/locations_address.rb +122 -0
  113. data/lib/postnl_ecommerce/models/locations_delivery_option_enum.rb +40 -0
  114. data/lib/postnl_ecommerce/models/locations_opening_hours.rb +121 -0
  115. data/lib/postnl_ecommerce/models/locations_response_multiple.rb +63 -0
  116. data/lib/postnl_ecommerce/models/monday.rb +62 -0
  117. data/lib/postnl_ecommerce/models/no_timeframes_options.rb +62 -0
  118. data/lib/postnl_ecommerce/models/old_status.rb +106 -0
  119. data/lib/postnl_ecommerce/models/opening_hours.rb +121 -0
  120. data/lib/postnl_ecommerce/models/opening_hours_per_day.rb +71 -0
  121. data/lib/postnl_ecommerce/models/options.rb +64 -0
  122. data/lib/postnl_ecommerce/models/origin_country_code_enum.rb +36 -0
  123. data/lib/postnl_ecommerce/models/postalcode_check_address.rb +116 -0
  124. data/lib/postnl_ecommerce/models/postalcode_check_error.rb +81 -0
  125. data/lib/postnl_ecommerce/models/product_option.rb +74 -0
  126. data/lib/postnl_ecommerce/models/reason_no_timeframe.rb +104 -0
  127. data/lib/postnl_ecommerce/models/reason_no_timeframes.rb +71 -0
  128. data/lib/postnl_ecommerce/models/saturday.rb +62 -0
  129. data/lib/postnl_ecommerce/models/shipment_type_enum.rb +50 -0
  130. data/lib/postnl_ecommerce/models/shippingstatus_address.rb +204 -0
  131. data/lib/postnl_ecommerce/models/shippingstatus_amount.rb +75 -0
  132. data/lib/postnl_ecommerce/models/shippingstatus_customer.rb +83 -0
  133. data/lib/postnl_ecommerce/models/shippingstatus_dimension.rb +101 -0
  134. data/lib/postnl_ecommerce/models/shippingstatus_product_option.rb +74 -0
  135. data/lib/postnl_ecommerce/models/shippingstatus_product_options.rb +63 -0
  136. data/lib/postnl_ecommerce/models/shippingstatus_response.rb +94 -0
  137. data/lib/postnl_ecommerce/models/shippingstatus_response_signature.rb +71 -0
  138. data/lib/postnl_ecommerce/models/shippingstatus_response_updated_shipment.rb +105 -0
  139. data/lib/postnl_ecommerce/models/shippingstatus_warning.rb +71 -0
  140. data/lib/postnl_ecommerce/models/signature.rb +84 -0
  141. data/lib/postnl_ecommerce/models/status.rb +108 -0
  142. data/lib/postnl_ecommerce/models/sunday.rb +62 -0
  143. data/lib/postnl_ecommerce/models/sustainability.rb +73 -0
  144. data/lib/postnl_ecommerce/models/thursday.rb +62 -0
  145. data/lib/postnl_ecommerce/models/timeframe.rb +71 -0
  146. data/lib/postnl_ecommerce/models/timeframe_options_enum.rb +60 -0
  147. data/lib/postnl_ecommerce/models/timeframe_response.rb +74 -0
  148. data/lib/postnl_ecommerce/models/timeframe_timeframe.rb +96 -0
  149. data/lib/postnl_ecommerce/models/timeframes.rb +71 -0
  150. data/lib/postnl_ecommerce/models/timeframes_response_object.rb +71 -0
  151. data/lib/postnl_ecommerce/models/tuesday.rb +62 -0
  152. data/lib/postnl_ecommerce/models/type_enum.rb +64 -0
  153. data/lib/postnl_ecommerce/models/updated_shipment_status.rb +108 -0
  154. data/lib/postnl_ecommerce/models/warning.rb +71 -0
  155. data/lib/postnl_ecommerce/models/warnings.rb +62 -0
  156. data/lib/postnl_ecommerce/models/wednesday.rb +62 -0
  157. data/lib/postnl_ecommerce/utilities/date_time_helper.rb +11 -0
  158. data/lib/postnl_ecommerce/utilities/file_wrapper.rb +28 -0
  159. data/lib/postnl_ecommerce.rb +188 -0
  160. data/test/controllers/controller_test_base.rb +23 -0
  161. data/test/controllers/test_barcode_controller.rb +52 -0
  162. data/test/controllers/test_checkout_controller.rb +63 -0
  163. data/test/controllers/test_confirming_controller.rb +54 -0
  164. data/test/controllers/test_deliverydate_controller.rb +60 -0
  165. data/test/controllers/test_labelling_controller.rb +57 -0
  166. data/test/controllers/test_locations_controller.rb +185 -0
  167. data/test/controllers/test_postalcode_check_controller.rb +55 -0
  168. data/test/controllers/test_shipment_controller.rb +57 -0
  169. data/test/controllers/test_shipping_status_controller.rb +209 -0
  170. data/test/controllers/test_timeframes_controller.rb +67 -0
  171. data/test/http_response_catcher.rb +19 -0
  172. metadata +283 -0
@@ -0,0 +1,188 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ require 'json'
8
+
9
+ require 'apimatic_core_interfaces'
10
+ require 'apimatic_core'
11
+ require 'apimatic_faraday_client_adapter'
12
+
13
+ require_relative 'postnl_ecommerce/api_helper'
14
+ require_relative 'postnl_ecommerce/client'
15
+
16
+ # Utilities
17
+ require_relative 'postnl_ecommerce/utilities/file_wrapper'
18
+ require_relative 'postnl_ecommerce/utilities/date_time_helper'
19
+
20
+ # Http
21
+ require_relative 'postnl_ecommerce/http/api_response'
22
+ require_relative 'postnl_ecommerce/http/http_call_back'
23
+ require_relative 'postnl_ecommerce/http/http_method_enum'
24
+ require_relative 'postnl_ecommerce/http/http_request'
25
+ require_relative 'postnl_ecommerce/http/http_response'
26
+ require_relative 'postnl_ecommerce/http/proxy_settings'
27
+
28
+
29
+ require_relative 'postnl_ecommerce/http/auth/custom_header_authentication'
30
+
31
+ # Models
32
+ require_relative 'postnl_ecommerce/models/base_model'
33
+ require_relative 'postnl_ecommerce/models/barcode_response'
34
+ require_relative 'postnl_ecommerce/models/barcode_error'
35
+ require_relative 'postnl_ecommerce/models/detail'
36
+ require_relative 'postnl_ecommerce/models/fault'
37
+ require_relative 'postnl_ecommerce/models/checkout_request'
38
+ require_relative 'postnl_ecommerce/models/checkout_address'
39
+ require_relative 'postnl_ecommerce/models/checkout_cut_off_time'
40
+ require_relative 'postnl_ecommerce/models/checkout_response'
41
+ require_relative 'postnl_ecommerce/models/checkout_warning'
42
+ require_relative 'postnl_ecommerce/models/checkout_pickup_option'
43
+ require_relative 'postnl_ecommerce/models/checkout_location'
44
+ require_relative 'postnl_ecommerce/models/opening_hours_per_day'
45
+ require_relative 'postnl_ecommerce/models/checkout_pickup_address'
46
+ require_relative 'postnl_ecommerce/models/checkout_delivery_option'
47
+ require_relative 'postnl_ecommerce/models/checkout_time_frame'
48
+ require_relative 'postnl_ecommerce/models/error'
49
+ require_relative 'postnl_ecommerce/models/opening_hours'
50
+ require_relative 'postnl_ecommerce/models/sustainability'
51
+ require_relative 'postnl_ecommerce/models/confirming_request'
52
+ require_relative 'postnl_ecommerce/models/confirming_shipment'
53
+ require_relative 'postnl_ecommerce/models/customer_address'
54
+ require_relative 'postnl_ecommerce/models/confirming_message'
55
+ require_relative 'postnl_ecommerce/models/confirming_custom'
56
+ require_relative 'postnl_ecommerce/models/confirming_custom_content'
57
+ require_relative 'postnl_ecommerce/models/confirming_response'
58
+ require_relative 'postnl_ecommerce/models/confirming_response_shipment'
59
+ require_relative 'postnl_ecommerce/models/confirming_error'
60
+ require_relative 'postnl_ecommerce/models/address'
61
+ require_relative 'postnl_ecommerce/models/amount'
62
+ require_relative 'postnl_ecommerce/models/contact'
63
+ require_relative 'postnl_ecommerce/models/customer'
64
+ require_relative 'postnl_ecommerce/models/dimension'
65
+ require_relative 'postnl_ecommerce/models/group'
66
+ require_relative 'postnl_ecommerce/models/hazardous_material'
67
+ require_relative 'postnl_ecommerce/models/product_option'
68
+ require_relative 'postnl_ecommerce/models/warning'
69
+ require_relative 'postnl_ecommerce/models/deliverydate_options'
70
+ require_relative 'postnl_ecommerce/models/deliverydate_delivery_response'
71
+ require_relative 'postnl_ecommerce/models/deliverydate_shipping_response'
72
+ require_relative 'postnl_ecommerce/models/labelling_request'
73
+ require_relative 'postnl_ecommerce/models/labelling_customer'
74
+ require_relative 'postnl_ecommerce/models/labelling_customer_message'
75
+ require_relative 'postnl_ecommerce/models/labelling_customer_shipment'
76
+ require_relative 'postnl_ecommerce/models/labelling_customs_content'
77
+ require_relative 'postnl_ecommerce/models/labelling_response'
78
+ require_relative 'postnl_ecommerce/models/labelling_merged_label'
79
+ require_relative 'postnl_ecommerce/models/labelling_label'
80
+ require_relative 'postnl_ecommerce/models/labelling_response_shipment'
81
+ require_relative 'postnl_ecommerce/models/labelling_error'
82
+ require_relative 'postnl_ecommerce/models/customs'
83
+ require_relative 'postnl_ecommerce/models/extra_field'
84
+ require_relative 'postnl_ecommerce/models/locations_response_multiple'
85
+ require_relative 'postnl_ecommerce/models/location_response_single'
86
+ require_relative 'postnl_ecommerce/models/get_locations_result_multiple'
87
+ require_relative 'postnl_ecommerce/models/get_locations_result_single'
88
+ require_relative 'postnl_ecommerce/models/location'
89
+ require_relative 'postnl_ecommerce/models/locations_opening_hours'
90
+ require_relative 'postnl_ecommerce/models/locations_address'
91
+ require_relative 'postnl_ecommerce/models/delivery_options'
92
+ require_relative 'postnl_ecommerce/models/friday'
93
+ require_relative 'postnl_ecommerce/models/monday'
94
+ require_relative 'postnl_ecommerce/models/saturday'
95
+ require_relative 'postnl_ecommerce/models/sunday'
96
+ require_relative 'postnl_ecommerce/models/thursday'
97
+ require_relative 'postnl_ecommerce/models/tuesday'
98
+ require_relative 'postnl_ecommerce/models/wednesday'
99
+ require_relative 'postnl_ecommerce/models/postalcode_check_address'
100
+ require_relative 'postnl_ecommerce/models/postalcode_check_error'
101
+ require_relative 'postnl_ecommerce/models/labelling_customer_labelling_api'
102
+ require_relative 'postnl_ecommerce/models/' \
103
+ 'labelling_customer_shipment_labelling_api'
104
+ require_relative 'postnl_ecommerce/models/customs_labelling_api'
105
+ require_relative 'postnl_ecommerce/models/shippingstatus_response'
106
+ require_relative 'postnl_ecommerce/models/current_status_shipment'
107
+ require_relative 'postnl_ecommerce/models/complete_status_shipment'
108
+ require_relative 'postnl_ecommerce/models/shippingstatus_product_options'
109
+ require_relative 'postnl_ecommerce/models/shippingstatus_product_option'
110
+ require_relative 'postnl_ecommerce/models/shippingstatus_address'
111
+ require_relative 'postnl_ecommerce/models/shippingstatus_amount'
112
+ require_relative 'postnl_ecommerce/models/shippingstatus_dimension'
113
+ require_relative 'postnl_ecommerce/models/shippingstatus_customer'
114
+ require_relative 'postnl_ecommerce/models/shippingstatus_response_signature'
115
+ require_relative 'postnl_ecommerce/models/shippingstatus_warning'
116
+ require_relative 'postnl_ecommerce/models/updated_shipment_status'
117
+ require_relative 'postnl_ecommerce/models/complete_status'
118
+ require_relative 'postnl_ecommerce/models/current_status'
119
+ require_relative 'postnl_ecommerce/models/event'
120
+ require_relative 'postnl_ecommerce/models/expectation'
121
+ require_relative 'postnl_ecommerce/models/fault_shipping_status_api'
122
+ require_relative 'postnl_ecommerce/models/old_status'
123
+ require_relative 'postnl_ecommerce/models/' \
124
+ 'shippingstatus_response_updated_shipment'
125
+ require_relative 'postnl_ecommerce/models/signature'
126
+ require_relative 'postnl_ecommerce/models/status'
127
+ require_relative 'postnl_ecommerce/models/warnings'
128
+ require_relative 'postnl_ecommerce/models/timeframe_response'
129
+ require_relative 'postnl_ecommerce/models/no_timeframes_options'
130
+ require_relative 'postnl_ecommerce/models/timeframes_response_object'
131
+ require_relative 'postnl_ecommerce/models/options'
132
+ require_relative 'postnl_ecommerce/models/reason_no_timeframe'
133
+ require_relative 'postnl_ecommerce/models/reason_no_timeframes'
134
+ require_relative 'postnl_ecommerce/models/timeframe'
135
+ require_relative 'postnl_ecommerce/models/timeframes'
136
+ require_relative 'postnl_ecommerce/models/timeframe_timeframe'
137
+ require_relative 'postnl_ecommerce/models/type_enum'
138
+ require_relative 'postnl_ecommerce/models/checkout_option_enum'
139
+ require_relative 'postnl_ecommerce/models/checkout_cut_off_day_enum'
140
+ require_relative 'postnl_ecommerce/models/checkout_cut_off_type_enum'
141
+ require_relative 'postnl_ecommerce/models/checkout_warning_option_enum'
142
+ require_relative 'postnl_ecommerce/models/address_type_enum'
143
+ require_relative 'postnl_ecommerce/models/code_enum'
144
+ require_relative 'postnl_ecommerce/models/countrycode_enum'
145
+ require_relative 'postnl_ecommerce/models/currency_enum'
146
+ require_relative 'postnl_ecommerce/models/shipment_type_enum'
147
+ require_relative 'postnl_ecommerce/models/deliverydate_option_enum'
148
+ require_relative 'postnl_ecommerce/models/origin_country_code_enum'
149
+ require_relative 'postnl_ecommerce/models/currency_labelling_api_enum'
150
+ require_relative 'postnl_ecommerce/models/locations_delivery_option_enum'
151
+ require_relative 'postnl_ecommerce/models/language_enum'
152
+ require_relative 'postnl_ecommerce/models/timeframe_options_enum'
153
+
154
+ # Exceptions
155
+ require_relative 'postnl_ecommerce/exceptions/api_exception'
156
+ require_relative 'postnl_ecommerce/exceptions/' \
157
+ 'barcode_response_invalid_exception'
158
+ require_relative 'postnl_ecommerce/exceptions/unauthorized_exception'
159
+ require_relative 'postnl_ecommerce/exceptions/' \
160
+ 'method_not_allowed_only_get_post_exception'
161
+ require_relative 'postnl_ecommerce/exceptions/too_many_requests_exception'
162
+ require_relative 'postnl_ecommerce/exceptions/internal_server_error_exception'
163
+ require_relative 'postnl_ecommerce/exceptions/invalid_request_exception'
164
+ require_relative 'postnl_ecommerce/exceptions/' \
165
+ 'method_not_allowed_only_post_exception'
166
+ require_relative 'postnl_ecommerce/exceptions/' \
167
+ 'confirming_response_error_exception'
168
+ require_relative 'postnl_ecommerce/exceptions/' \
169
+ 'labelling_response_invalid_exception'
170
+ require_relative 'postnl_ecommerce/exceptions/' \
171
+ 'postalcode_check_response_invalid_exception'
172
+ require_relative 'postnl_ecommerce/exceptions/' \
173
+ 'method_not_allowed_only_get_exception'
174
+
175
+ require_relative 'postnl_ecommerce/configuration'
176
+
177
+ # Controllers
178
+ require_relative 'postnl_ecommerce/controllers/base_controller'
179
+ require_relative 'postnl_ecommerce/controllers/barcode_controller'
180
+ require_relative 'postnl_ecommerce/controllers/checkout_controller'
181
+ require_relative 'postnl_ecommerce/controllers/confirming_controller'
182
+ require_relative 'postnl_ecommerce/controllers/deliverydate_controller'
183
+ require_relative 'postnl_ecommerce/controllers/labelling_controller'
184
+ require_relative 'postnl_ecommerce/controllers/locations_controller'
185
+ require_relative 'postnl_ecommerce/controllers/postalcode_check_controller'
186
+ require_relative 'postnl_ecommerce/controllers/shipment_controller'
187
+ require_relative 'postnl_ecommerce/controllers/shipping_status_controller'
188
+ require_relative 'postnl_ecommerce/controllers/timeframes_controller'
@@ -0,0 +1,23 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'json'
7
+ require 'minitest/autorun'
8
+ require 'minitest/hell'
9
+ require 'minitest/pride'
10
+ require 'minitest/proveit'
11
+ require 'postnl_ecommerce'
12
+ require_relative '../http_response_catcher'
13
+
14
+ class ControllerTestBase < Minitest::Test
15
+ parallelize_me!
16
+ include PostnlEcommerce
17
+ include CoreLibrary
18
+
19
+ # Initializes the base test controller
20
+ def setup_class
21
+ @client = Client.from_env(http_callback: HttpResponseCatcher.new)
22
+ end
23
+ end
@@ -0,0 +1,52 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class BarcodeControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.barcode
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # Request example:
17
+ #```
18
+ #curl -X GET "https://api-sandbox.postnl.nl/shipment/v1_1/barcode?CustomerCode=DEVC&amp;CustomerNumber=11223344&amp;Type=3S&amp;Serie=000000000-999999999&amp" \
19
+ # -H "Accept: application/json" \
20
+ # -H "apikey: APIKEY-HERE"
21
+ #```
22
+ #
23
+ def test_generate_barcode
24
+ # Parameters for the API call
25
+ customer_code = 'DEVC'
26
+ customer_number = '11223344'
27
+ type = '3S'
28
+ serie = '100000000'
29
+ range = nil
30
+
31
+ # Perform the API call through the SDK function
32
+ result = @controller.generate_barcode(customer_code, customer_number, type,
33
+ serie: serie, range: range)
34
+
35
+ # Test response code
36
+ assert_equal(200, @response_catcher.response.status_code)
37
+ # Test headers
38
+ expected_headers = {}
39
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
40
+
41
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
42
+
43
+ # Test whether the captured response is as we expected
44
+ refute_nil(result)
45
+ expected_body = JSON.parse(
46
+ '{"Barcode":"3SDEVC903942795"}'
47
+ )
48
+ received_body = JSON.parse(@response_catcher.response.raw_body)
49
+ assert(ComparisonHelper.match_body(expected_body, received_body))
50
+ end
51
+
52
+ end
@@ -0,0 +1,63 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class CheckoutControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.checkout
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # Checkout
17
+ def test_checkout
18
+ # Parameters for the API call
19
+ body = CheckoutRequest.from_hash(APIHelper.json_deserialize(
20
+ '{"OrderDate":"24-02-2021 12:00:00","ShippingDuration":1,"CutOffTimes":['\
21
+ '{"Day":"00","Available":true,"Type":"Regular","Time":"20:00:00"},{"Day"'\
22
+ ':"00","Available":true,"Type":"Today","Time":"12:00:00"}],"HolidaySorti'\
23
+ 'ng":true,"Options":["Daytime","Evening","Today","Sunday","Pickup"],"Loc'\
24
+ 'ations":2,"Days":3,"Addresses":[{"AddressType":"01","Street":"Molengraa'\
25
+ 'ffplantsoen","HouseNr":74,"Zipcode":"3571ZZ","City":"Utrecht","Countryc'\
26
+ 'ode":"NL"}]}', false))
27
+
28
+ # Perform the API call through the SDK function
29
+ result = @controller.checkout(body)
30
+
31
+ # Test response code
32
+ assert_equal(200, @response_catcher.response.status_code)
33
+ # Test headers
34
+ expected_headers = {}
35
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
36
+
37
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
38
+
39
+ # Test whether the captured response is as we expected
40
+ refute_nil(result)
41
+ expected_body = JSON.parse(
42
+ '{"DeliveryOptions":[{"DeliveryDate":"09-07-2019","Timeframe":[{"From":"'\
43
+ '18:00:00","To":"22:30:00","Options":["Daytime"],"ShippingDate":"08-07-2'\
44
+ '019","Sustainability":{"Code":"02","Description":"Sustainable option"}}'\
45
+ ']}],"PickupOptions":[{"PickupDate":"09-07-2019","ShippingDate":"08-07-2'\
46
+ '019","Option":"Pickup","Locations":[{"Address":{"Street":"Siriusdreef",'\
47
+ '"Zipcode":"2132WT","HouseNr":42,"HouseNrExt":"-60","Countrycode":"NL","'\
48
+ 'CompanyName":"Pickup company BV"},"PickupTime":"15:00","OpeningHours":{'\
49
+ '"Monday":{"From":"08:30:00","To":"22:30:00"},"Tuesday":{"From":"08:30:0'\
50
+ '0","To":"22:30:00"},"Wednesday":{"From":"08:30:00","To":"22:30:00"},"Th'\
51
+ 'ursday":{"From":"08:30:00","To":"22:30:00"},"Friday":{"From":"08:30:00"'\
52
+ ',"To":"22:30:00"},"Saturday":{"From":"08:30:00","To":"22:30:00"},"Sunda'\
53
+ 'y":{"From":"08:30:00","To":"22:30:00"}},"Distance":234,"LocationCode":"'\
54
+ '8101163043","PartnerID":"PNPNL-01","Sustainability":{"Code":"02","Descr'\
55
+ 'iption":"Sustainable option"}}]}],"Warnings":[{"DeliveryDate":"07-07-20'\
56
+ '19","Code":"5034","Description":"No delivery option found on date","Opt'\
57
+ 'ions":"Daytime"}]}'
58
+ )
59
+ received_body = JSON.parse(@response_catcher.response.raw_body)
60
+ assert(ComparisonHelper.match_body(expected_body, received_body))
61
+ end
62
+
63
+ end
@@ -0,0 +1,54 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class ConfirmingControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.confirming
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # Confirm a shipment to PostNL
17
+ def test_confirm_shipment
18
+ # Parameters for the API call
19
+ body = ConfirmingRequest.from_hash(APIHelper.json_deserialize(
20
+ '{"Customer":{"Address":{"AddressType":"02","City":"Den Haag","CompanyNa'\
21
+ 'me":"PostNL","Countrycode":"NL","HouseNr":"3","Street":"Waldorpstraat",'\
22
+ '"Zipcode":"2521CA"},"CollectionLocation":"123456","ContactPerson":"Jans'\
23
+ 'sen","CustomerCode":"DEVC","CustomerNumber":"11223344","Email":"email@c'\
24
+ 'ompany.com","Name":"Janssen"},"Message":{"MessageID":"1","MessageTimeSt'\
25
+ 'amp":"08-09-2022 12:00:00"},"Shipments":[{"Addresses":[{"AddressType":"'\
26
+ '01","City":"Utrecht","Countrycode":"NL","FirstName":"Peter","HouseNr":"'\
27
+ '9","HouseNrExt":"a bis","Name":"de Ruiter","Street":"Bilderdijkstraat",'\
28
+ '"Zipcode":"3532VA"}],"Barcode":"3SDEVC748859096","Contacts":[{"ContactT'\
29
+ 'ype":"01","Email":"receiver@email.com","SMSNr":"+31612345678","TelNr":"'\
30
+ '+31301234567"}],"Dimension":{"Weight":2000},"ProductCodeDelivery":"3085'\
31
+ '"}]}', false))
32
+
33
+ # Perform the API call through the SDK function
34
+ result = @controller.confirm_shipment(body)
35
+
36
+ # Test response code
37
+ assert_equal(200, @response_catcher.response.status_code)
38
+ # Test headers
39
+ expected_headers = {}
40
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
41
+
42
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
43
+
44
+ # Test whether the captured response is as we expected
45
+ refute_nil(result)
46
+ expected_body = JSON.parse(
47
+ '{"ResponseShipments":[{"Errors":[],"Warnings":[{"Code":"1280103","Descr'\
48
+ 'iption":"Address is unknown"}],"Barcode":"3SDEVC281677095"}]}'
49
+ )
50
+ received_body = JSON.parse(@response_catcher.response.raw_body)
51
+ assert(ComparisonHelper.match_body(expected_body, received_body))
52
+ end
53
+
54
+ end
@@ -0,0 +1,60 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class DeliverydateControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.deliverydate
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # Request example:
17
+ #```
18
+ #curl -X GET "https://api-sandbox.postnl.nl/shipment/v2_2/calculate/date/shipping?DeliveryDate=30-05-2022&amp;ShippingDuration=1&amp;PostalCode=2132WT&amp;CountryCode=NL&amp;City=Hoofddorp&amp;Street=Siriusdreef&amp;HouseNumber=42&amp;HouseNrExt=A" \
19
+ # -H "Accept: application/json" \
20
+ # -H "apikey: APIKEY-HERE" \
21
+ #
22
+ #```
23
+ #
24
+ def test_calculate_shipping_date
25
+ # Parameters for the API call
26
+ delivery_date = '30-05-2022'
27
+ shipping_duration = 1
28
+ postal_code = '2132WT'
29
+ country_code = 'NL'
30
+ origin_country_code = 'NL'
31
+ city = 'Hoofddorp'
32
+ street = 'Siriusdreef'
33
+ house_number = 42
34
+ house_nr_ext = 'A'
35
+
36
+ # Perform the API call through the SDK function
37
+ result = @controller.calculate_shipping_date(
38
+ delivery_date, shipping_duration, postal_code, country_code,
39
+ origin_country_code: origin_country_code, city: city, street: street,
40
+ house_number: house_number, house_nr_ext: house_nr_ext
41
+ )
42
+
43
+ # Test response code
44
+ assert_equal(200, @response_catcher.response.status_code)
45
+ # Test headers
46
+ expected_headers = {}
47
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
48
+
49
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
50
+
51
+ # Test whether the captured response is as we expected
52
+ refute_nil(result)
53
+ expected_body = JSON.parse(
54
+ '{"SentDate":"29-06-2022"}'
55
+ )
56
+ received_body = JSON.parse(@response_catcher.response.raw_body)
57
+ assert(ComparisonHelper.match_body(expected_body, received_body))
58
+ end
59
+
60
+ end
@@ -0,0 +1,57 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class LabellingControllerTest < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ setup_class
12
+ @controller = @client.labelling
13
+ @response_catcher = @controller.http_call_back
14
+ end
15
+
16
+ # Generate a label and confirmation
17
+ def test_generate_label
18
+ # Parameters for the API call
19
+ body = LabellingRequest.from_hash(APIHelper.json_deserialize(
20
+ '{"Customer":{"Address":{"AddressType":"02","City":"Den Haag","CompanyNa'\
21
+ 'me":"PostNL","Countrycode":"NL","HouseNr":"3","Street":"Waldorpstraat",'\
22
+ '"Zipcode":"2521CA"},"CollectionLocation":"123456","ContactPerson":"Jans'\
23
+ 'sen","CustomerCode":"DEVC","CustomerNumber":"11223344","Email":"email@c'\
24
+ 'ompany.com","Name":"Janssen"},"Message":{"MessageID":"1","MessageTimeSt'\
25
+ 'amp":"08-09-2022 12:00:00","Printertype":"GraphicFile|PDF"},"Shipments"'\
26
+ ':[{"Addresses":[{"AddressType":"01","City":"Utrecht","Countrycode":"NL"'\
27
+ ',"FirstName":"Peter","HouseNr":"9","HouseNrExt":"a bis","Name":"de Ruit'\
28
+ 'er","Street":"Bilderdijkstraat","Zipcode":"3532VA"}],"Barcode":"3SDEVC7'\
29
+ '48859096","Contacts":[{"ContactType":"01","Email":"receiver@email.com",'\
30
+ '"SMSNr":"+31612345678","TelNr":"+31301234567"}],"Dimension":{"Weight":2'\
31
+ '000},"ProductCodeDelivery":"3085"}]}', false))
32
+ confirm = true
33
+
34
+ # Perform the API call through the SDK function
35
+ result = @controller.generate_label(body, confirm: confirm)
36
+
37
+ # Test response code
38
+ assert_equal(200, @response_catcher.response.status_code)
39
+ # Test headers
40
+ expected_headers = {}
41
+ expected_headers['content-type'] = 'application/json; charset=utf-8'
42
+
43
+ assert(ComparisonHelper.match_headers(expected_headers, @response_catcher.response.headers))
44
+
45
+ # Test whether the captured response is as we expected
46
+ refute_nil(result)
47
+ expected_body = JSON.parse(
48
+ '{"MergedLabels":[],"ResponseShipments":[{"Barcode":"3SDEVC272730803","E'\
49
+ 'rrors":[],"Warnings":[],"Labels":[{"Content":"JVBERi0xLjMKJeLjz9MKNSAwI'\
50
+ 'G9iago8PAovQ29udGVudHMg[TRUNCATED]","Labeltype":"Label","OutputType":"P'\
51
+ 'DF"}],"ProductCodeDelivery":"3085"}]}'
52
+ )
53
+ received_body = JSON.parse(@response_catcher.response.raw_body)
54
+ assert(ComparisonHelper.match_body(expected_body, received_body))
55
+ end
56
+
57
+ end