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,45 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module PostnlEcommerce
7
+ # CheckoutController
8
+ class CheckoutController < BaseController
9
+ # TODO: type endpoint description here
10
+ # @param [CheckoutRequest] body Required parameter: TODO: type description
11
+ # here
12
+ # @return [ApiResponse] Complete http response with raw body and status code.
13
+ def checkout(body)
14
+ @api_call
15
+ .request(new_request_builder(HttpMethodEnum::POST,
16
+ '/shipment/v1/checkout',
17
+ Server::POSTNL)
18
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
19
+ .body_param(new_parameter(body))
20
+ .header_param(new_parameter('application/json', key: 'accept'))
21
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
22
+ .auth(Single.new('APIKeyHeader')))
23
+ .response(new_response_handler
24
+ .deserializer(APIHelper.method(:custom_type_deserializer))
25
+ .deserialize_into(CheckoutResponse.method(:from_hash))
26
+ .is_api_response(true)
27
+ .local_error('400',
28
+ 'Invalid request',
29
+ InvalidRequestException)
30
+ .local_error('401',
31
+ 'Invalid apikey',
32
+ UnauthorizedException)
33
+ .local_error('405',
34
+ 'Method not allowed',
35
+ MethodNotAllowedOnlyPostException)
36
+ .local_error('429',
37
+ 'Too many requests',
38
+ TooManyRequestsException)
39
+ .local_error('500',
40
+ 'Internal server error',
41
+ InternalServerErrorException))
42
+ .execute
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,45 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module PostnlEcommerce
7
+ # ConfirmingController
8
+ class ConfirmingController < BaseController
9
+ # TODO: type endpoint description here
10
+ # @param [ConfirmingRequest] body Required parameter: TODO: type description
11
+ # here
12
+ # @return [ApiResponse] Complete http response with raw body and status code.
13
+ def confirm_shipment(body)
14
+ @api_call
15
+ .request(new_request_builder(HttpMethodEnum::POST,
16
+ '/shipment/v2/confirm',
17
+ Server::POSTNL)
18
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
19
+ .body_param(new_parameter(body))
20
+ .header_param(new_parameter('application/json', key: 'accept'))
21
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
22
+ .auth(Single.new('APIKeyHeader')))
23
+ .response(new_response_handler
24
+ .deserializer(APIHelper.method(:custom_type_deserializer))
25
+ .deserialize_into(ConfirmingResponse.method(:from_hash))
26
+ .is_api_response(true)
27
+ .local_error('400',
28
+ 'Error payload',
29
+ ConfirmingResponseErrorException)
30
+ .local_error('401',
31
+ 'Invalid apikey',
32
+ UnauthorizedException)
33
+ .local_error('405',
34
+ 'Method not allowed',
35
+ MethodNotAllowedOnlyGetPostException)
36
+ .local_error('429',
37
+ 'Too many requests',
38
+ TooManyRequestsException)
39
+ .local_error('500',
40
+ 'Internal server error',
41
+ InternalServerErrorException))
42
+ .execute
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,233 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module PostnlEcommerce
7
+ # DeliverydateController
8
+ class DeliverydateController < BaseController
9
+ # Request example:
10
+ # ```
11
+ # curl -X GET
12
+ # "https://api-sandbox.postnl.nl/shipment/v2_2/calculate/date/delivery?Shipp
13
+ # ingDate=29-05-2022+14%3A00%3A00&amp;ShippingDuration=1&amp;CutOffTime=17%3
14
+ # A00%3A00&amp;PostalCode=2132WT&amp;CountryCode=NL&amp;City=Hoofddorp&amp;S
15
+ # treet=Siriusdreef&amp;HouseNumber=42&amp;HouseNrExt=A" \
16
+ # -H "Accept: application/json" \
17
+ # -H "apikey: APIKEY-HERE"
18
+ # ```
19
+ # @param [String] shipping_date Required parameter: Date/time of preparing
20
+ # the shipment for sending. Format: dd-MM-yyyy hh:mm:ss
21
+ # @param [Integer] shipping_duration Required parameter: The duration it
22
+ # takes for the shipment to be delivered to PostNL in days. A value of 1
23
+ # means that the parcel will be delivered to PostNL on the same day as the
24
+ # date specified in ShippingDate. A value of 2 means the parcel will arrive
25
+ # at PostNL a day later etc.
26
+ # @param [String] cut_off_time Required parameter: Default cutoff time
27
+ # @param [String] postal_code Required parameter: Zipcode of the destination
28
+ # address
29
+ # @param [CountrycodeEnum] country_code Required parameter: The ISO2
30
+ # destination country code
31
+ # @param [Array[DeliverydateOptionEnum]] options Required parameter: The
32
+ # delivery options that you want to take into account when calculating the
33
+ # expected delivery date
34
+ # @param [OriginCountryCodeEnum] origin_country_code Optional parameter: The
35
+ # ISO2 origin country code
36
+ # @param [String] city Optional parameter: City of the destination address
37
+ # @param [String] street Optional parameter: The street name of the
38
+ # destination address.
39
+ # @param [Integer] house_number Optional parameter: The house number of the
40
+ # destination address
41
+ # @param [String] house_nr_ext Optional parameter: House number extension of
42
+ # the delivery address
43
+ # @param [String] cut_off_time_monday Optional parameter: Overrides default
44
+ # cutoff time specified in the CutOffTime parameter for mondays
45
+ # specifically
46
+ # @param [TrueClass | FalseClass] available_monday Optional parameter:
47
+ # Specifies if you are available to ship to PostNL on mondays
48
+ # @param [String] cut_off_time_tuesday Optional parameter: Overrides default
49
+ # cutoff time specified in the CutOffTime parameter for tuesdays
50
+ # specifically
51
+ # @param [TrueClass | FalseClass] available_tuesday Optional parameter:
52
+ # Specifies if you are available to ship to PostNL on tuesdays
53
+ # @param [String] cut_off_time_wednesday Optional parameter: Overrides
54
+ # default cutoff time specified in the CutOffTime parameter for wednesdays
55
+ # specifically
56
+ # @param [TrueClass | FalseClass] available_wednesday Optional parameter:
57
+ # Specifies if you are available to ship to PostNL on wednesdays
58
+ # @param [String] cut_off_time_thursday Optional parameter: Overrides
59
+ # default cutoff time specified in the CutOffTime parameter for thursdays
60
+ # specifically
61
+ # @param [TrueClass | FalseClass] available_thursday Optional parameter:
62
+ # Specifies if you are available to ship to PostNL on thursdays
63
+ # @param [String] cut_off_time_friday Optional parameter: Overrides default
64
+ # cutoff time specified in the CutOffTime parameter for fridays
65
+ # specifically
66
+ # @param [TrueClass | FalseClass] available_friday Optional parameter:
67
+ # Specifies if you are available to ship to PostNL on fridays
68
+ # @param [String] cut_off_time_saturday Optional parameter: Overrides
69
+ # default cutoff time specified in the CutOffTime parameter for saturdays
70
+ # specifically
71
+ # @param [TrueClass | FalseClass] available_saturday Optional parameter:
72
+ # Specifies if you are available to ship to PostNL on saturdays
73
+ # @param [String] cut_off_time_sunday Optional parameter: Overrides default
74
+ # cutoff time specified in the CutOffTime parameter for sundays
75
+ # specifically
76
+ # @param [TrueClass | FalseClass] available_sunday Optional parameter:
77
+ # Specifies if you are available to ship to PostNL on sundays
78
+ # @return [ApiResponse] Complete http response with raw body and status code.
79
+ def calculate_delivery_date(shipping_date,
80
+ shipping_duration,
81
+ cut_off_time,
82
+ postal_code,
83
+ country_code,
84
+ options,
85
+ origin_country_code: OriginCountryCodeEnum::NL,
86
+ city: nil,
87
+ street: nil,
88
+ house_number: nil,
89
+ house_nr_ext: nil,
90
+ cut_off_time_monday: nil,
91
+ available_monday: nil,
92
+ cut_off_time_tuesday: nil,
93
+ available_tuesday: nil,
94
+ cut_off_time_wednesday: nil,
95
+ available_wednesday: nil,
96
+ cut_off_time_thursday: nil,
97
+ available_thursday: nil,
98
+ cut_off_time_friday: nil,
99
+ available_friday: nil,
100
+ cut_off_time_saturday: nil,
101
+ available_saturday: nil,
102
+ cut_off_time_sunday: nil,
103
+ available_sunday: nil)
104
+ @api_call
105
+ .request(new_request_builder(HttpMethodEnum::GET,
106
+ '/shipment/v2_2/calculate/date/delivery',
107
+ Server::POSTNL)
108
+ .query_param(new_parameter(shipping_date, key: 'ShippingDate'))
109
+ .query_param(new_parameter(shipping_duration, key: 'ShippingDuration'))
110
+ .query_param(new_parameter(cut_off_time, key: 'CutOffTime'))
111
+ .query_param(new_parameter(postal_code, key: 'PostalCode'))
112
+ .query_param(new_parameter(country_code, key: 'CountryCode'))
113
+ .query_param(new_parameter(options, key: 'Options'))
114
+ .query_param(new_parameter(origin_country_code, key: 'OriginCountryCode'))
115
+ .query_param(new_parameter(city, key: 'City'))
116
+ .query_param(new_parameter(street, key: 'Street'))
117
+ .query_param(new_parameter(house_number, key: 'HouseNumber'))
118
+ .query_param(new_parameter(house_nr_ext, key: 'HouseNrExt'))
119
+ .query_param(new_parameter(cut_off_time_monday, key: 'CutOffTimeMonday'))
120
+ .query_param(new_parameter(available_monday, key: 'AvailableMonday'))
121
+ .query_param(new_parameter(cut_off_time_tuesday, key: 'CutOffTimeTuesday'))
122
+ .query_param(new_parameter(available_tuesday, key: 'AvailableTuesday'))
123
+ .query_param(new_parameter(cut_off_time_wednesday, key: 'CutOffTimeWednesday'))
124
+ .query_param(new_parameter(available_wednesday, key: 'AvailableWednesday'))
125
+ .query_param(new_parameter(cut_off_time_thursday, key: 'CutOffTimeThursday'))
126
+ .query_param(new_parameter(available_thursday, key: 'AvailableThursday'))
127
+ .query_param(new_parameter(cut_off_time_friday, key: 'CutOffTimeFriday'))
128
+ .query_param(new_parameter(available_friday, key: 'AvailableFriday'))
129
+ .query_param(new_parameter(cut_off_time_saturday, key: 'CutOffTimeSaturday'))
130
+ .query_param(new_parameter(available_saturday, key: 'AvailableSaturday'))
131
+ .query_param(new_parameter(cut_off_time_sunday, key: 'CutOffTimeSunday'))
132
+ .query_param(new_parameter(available_sunday, key: 'AvailableSunday'))
133
+ .header_param(new_parameter('application/json', key: 'accept'))
134
+ .auth(Single.new('APIKeyHeader')))
135
+ .response(new_response_handler
136
+ .deserializer(APIHelper.method(:custom_type_deserializer))
137
+ .deserialize_into(DeliverydateDeliveryResponse.method(:from_hash))
138
+ .is_api_response(true)
139
+ .local_error('400',
140
+ 'Bad request',
141
+ InvalidRequestException)
142
+ .local_error('401',
143
+ 'Invalid apikey',
144
+ UnauthorizedException)
145
+ .local_error('405',
146
+ 'Method not allowed',
147
+ MethodNotAllowedOnlyGetPostException)
148
+ .local_error('429',
149
+ 'Too many requests',
150
+ TooManyRequestsException)
151
+ .local_error('500',
152
+ 'Internal server error',
153
+ InternalServerErrorException))
154
+ .execute
155
+ end
156
+
157
+ # Request example:
158
+ # ```
159
+ # curl -X GET
160
+ # "https://api-sandbox.postnl.nl/shipment/v2_2/calculate/date/shipping?Deliv
161
+ # eryDate=30-05-2022&amp;ShippingDuration=1&amp;PostalCode=2132WT&amp;Countr
162
+ # yCode=NL&amp;City=Hoofddorp&amp;Street=Siriusdreef&amp;HouseNumber=42&amp;
163
+ # HouseNrExt=A" \
164
+ # -H "Accept: application/json" \
165
+ # -H "apikey: APIKEY-HERE" \
166
+ # ```
167
+ # @param [String] delivery_date Required parameter: Date of the expected
168
+ # delivery (to the final destination) of the shipment.
169
+ # @param [Integer] shipping_duration Required parameter: The duration it
170
+ # takes for the shipment to be delivered to PostNL in days. A value of 1
171
+ # means that the parcel will be delivered to PostNL on the same day as the
172
+ # date specified in ShippingDate. A value of 2 means the parcel will arrive
173
+ # at PostNL a day later etc.
174
+ # @param [String] postal_code Required parameter: Zipcode of the address
175
+ # @param [CountrycodeEnum] country_code Required parameter: The ISO2
176
+ # destination country code
177
+ # @param [OriginCountryCodeEnum] origin_country_code Optional parameter: The
178
+ # ISO2 country code of the origin country
179
+ # @param [String] city Optional parameter: City of the destination address
180
+ # @param [String] street Optional parameter: The street name of the
181
+ # destination address
182
+ # @param [Integer] house_number Optional parameter: The house number of the
183
+ # destination address
184
+ # @param [String] house_nr_ext Optional parameter: House number extension of
185
+ # the destination address
186
+ # @return [ApiResponse] Complete http response with raw body and status code.
187
+ def calculate_shipping_date(delivery_date,
188
+ shipping_duration,
189
+ postal_code,
190
+ country_code,
191
+ origin_country_code: OriginCountryCodeEnum::NL,
192
+ city: nil,
193
+ street: nil,
194
+ house_number: nil,
195
+ house_nr_ext: nil)
196
+ @api_call
197
+ .request(new_request_builder(HttpMethodEnum::GET,
198
+ '/shipment/v2_2/calculate/date/shipping',
199
+ Server::POSTNL)
200
+ .query_param(new_parameter(delivery_date, key: 'DeliveryDate'))
201
+ .query_param(new_parameter(shipping_duration, key: 'ShippingDuration'))
202
+ .query_param(new_parameter(postal_code, key: 'PostalCode'))
203
+ .query_param(new_parameter(country_code, key: 'CountryCode'))
204
+ .query_param(new_parameter(origin_country_code, key: 'OriginCountryCode'))
205
+ .query_param(new_parameter(city, key: 'City'))
206
+ .query_param(new_parameter(street, key: 'Street'))
207
+ .query_param(new_parameter(house_number, key: 'HouseNumber'))
208
+ .query_param(new_parameter(house_nr_ext, key: 'HouseNrExt'))
209
+ .header_param(new_parameter('application/json', key: 'accept'))
210
+ .auth(Single.new('APIKeyHeader')))
211
+ .response(new_response_handler
212
+ .deserializer(APIHelper.method(:custom_type_deserializer))
213
+ .deserialize_into(DeliverydateShippingResponse.method(:from_hash))
214
+ .is_api_response(true)
215
+ .local_error('400',
216
+ 'Bad request',
217
+ InvalidRequestException)
218
+ .local_error('401',
219
+ 'Invalid apikey',
220
+ UnauthorizedException)
221
+ .local_error('405',
222
+ 'Method not allowed',
223
+ MethodNotAllowedOnlyGetPostException)
224
+ .local_error('429',
225
+ 'Too many requests',
226
+ TooManyRequestsException)
227
+ .local_error('500',
228
+ 'Internal server error',
229
+ InternalServerErrorException))
230
+ .execute
231
+ end
232
+ end
233
+ 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
+ module PostnlEcommerce
7
+ # LabellingController
8
+ class LabellingController < BaseController
9
+ # TODO: type endpoint description here
10
+ # @param [LabellingRequest] body Required parameter: TODO: type description
11
+ # here
12
+ # @param [TrueClass | FalseClass] confirm Optional parameter: With the
13
+ # Confirm boolean in the request, you can determine if you want to confirm
14
+ # the shipment in the same call or not. If the Boolean variable is true the
15
+ # shipment will be preannounced. If this is set to false, then an additional
16
+ # Confirming API request needs to be made.
17
+ # @return [ApiResponse] Complete http response with raw body and status code.
18
+ def generate_label(body,
19
+ confirm: true)
20
+ @api_call
21
+ .request(new_request_builder(HttpMethodEnum::POST,
22
+ '/shipment/v2_2/label',
23
+ Server::POSTNL)
24
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
25
+ .body_param(new_parameter(body))
26
+ .query_param(new_parameter(confirm, key: 'confirm'))
27
+ .header_param(new_parameter('application/json', key: 'accept'))
28
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
29
+ .auth(Single.new('APIKeyHeader')))
30
+ .response(new_response_handler
31
+ .deserializer(APIHelper.method(:custom_type_deserializer))
32
+ .deserialize_into(LabellingResponse.method(:from_hash))
33
+ .is_api_response(true)
34
+ .local_error('400',
35
+ 'Error payload',
36
+ LabellingResponseInvalidException)
37
+ .local_error('401',
38
+ 'Invalid apikey',
39
+ UnauthorizedException)
40
+ .local_error('405',
41
+ 'Method not allowed',
42
+ MethodNotAllowedOnlyPostException)
43
+ .local_error('429',
44
+ 'Too many requests',
45
+ TooManyRequestsException)
46
+ .local_error('500',
47
+ 'Internal server error',
48
+ InternalServerErrorException))
49
+ .execute
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,271 @@
1
+ # postnl_ecommerce
2
+ #
3
+ # This file was automatically generated for PostNL by
4
+ # APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module PostnlEcommerce
7
+ # LocationsController
8
+ class LocationsController < BaseController
9
+ # Request example:
10
+ # ```
11
+ # curl -X GET
12
+ # "https://api-sandbox.postnl.nl/shipment/v2_1/locations/nearest?CountryCode
13
+ # =NL&PostalCode=2132WT&City=Hoofddorp&Street=Siriusdreef&HouseNumber=42&Hou
14
+ # seNumberExtension=-60&DeliveryDate=24-12-2022&OpeningTime=09%3A00%3A00" \
15
+ # -H "Accept: application/json" \
16
+ # -H "apikey: APIKEY-HERE" \
17
+ # ```
18
+ # @param [CountrycodeEnum] country_code Required parameter: The country of
19
+ # the recipient's address
20
+ # @param [String] postal_code Required parameter: The zipcode of the
21
+ # recipient's address
22
+ # @param [String] city Optional parameter: The city of the recipient's
23
+ # address
24
+ # @param [String] street Optional parameter: The street name of the
25
+ # recipient's address
26
+ # @param [Integer] house_number Optional parameter: The house number of the
27
+ # recipient's address
28
+ # @param [String] house_number_extension Optional parameter: The house
29
+ # number extension of the recipient's address
30
+ # @param [String] delivery_date Optional parameter: The date of the earliest
31
+ # delivery date at the pickup location. Format: dd-MM-yyyy. Note: this date
32
+ # cannot be in the past, otherwise an error is returned. If not provided,
33
+ # the present day is used as a default
34
+ # @param [String] opening_time Optional parameter: Opening time filter.
35
+ # Format: hh:mm:ss. This field will be used to filter out locations that are
36
+ # closed at the time provided. If no opening time is provided all locations
37
+ # will be returned regardless of their opening times.
38
+ # @param [Array[LocationsDeliveryOptionEnum]] delivery_options Optional
39
+ # parameter: The pickup location types for which locations should be
40
+ # filtered. By default all location types are returned (PG = Retail points
41
+ # and parcel lockers). This can be used to filter on only parcel lockers
42
+ # (PA) or specifically exclude parcel lockers from the response (PG_EX).
43
+ # @return [ApiResponse] Complete http response with raw body and status code.
44
+ def get_pickup_locations_by_address(country_code,
45
+ postal_code,
46
+ city: nil,
47
+ street: nil,
48
+ house_number: nil,
49
+ house_number_extension: nil,
50
+ delivery_date: nil,
51
+ opening_time: nil,
52
+ delivery_options: nil)
53
+ @api_call
54
+ .request(new_request_builder(HttpMethodEnum::GET,
55
+ '/shipment/v2_1/locations/nearest',
56
+ Server::POSTNL)
57
+ .query_param(new_parameter(country_code, key: 'CountryCode'))
58
+ .query_param(new_parameter(postal_code, key: 'PostalCode'))
59
+ .query_param(new_parameter(city, key: 'City'))
60
+ .query_param(new_parameter(street, key: 'Street'))
61
+ .query_param(new_parameter(house_number, key: 'HouseNumber'))
62
+ .query_param(new_parameter(house_number_extension, key: 'HouseNumberExtension'))
63
+ .query_param(new_parameter(delivery_date, key: 'DeliveryDate'))
64
+ .query_param(new_parameter(opening_time, key: 'OpeningTime'))
65
+ .query_param(new_parameter(delivery_options, key: 'DeliveryOptions'))
66
+ .header_param(new_parameter('application/json', key: 'accept'))
67
+ .auth(Single.new('APIKeyHeader')))
68
+ .response(new_response_handler
69
+ .deserializer(APIHelper.method(:custom_type_deserializer))
70
+ .deserialize_into(LocationsResponseMultiple.method(:from_hash))
71
+ .is_api_response(true)
72
+ .local_error('400',
73
+ 'Invalid request',
74
+ InvalidRequestException)
75
+ .local_error('401',
76
+ 'Invalid apikey',
77
+ UnauthorizedException)
78
+ .local_error('405',
79
+ 'Method not allowed',
80
+ MethodNotAllowedOnlyGetPostException)
81
+ .local_error('429',
82
+ 'Too many requests',
83
+ TooManyRequestsException)
84
+ .local_error('500',
85
+ 'Internal server error',
86
+ InternalServerErrorException))
87
+ .execute
88
+ end
89
+
90
+ # Request example:
91
+ # ```
92
+ # curl -X GET
93
+ # "https://api-sandbox.postnl.nl/shipment/v2_1/locations/nearest/geocode?Lat
94
+ # itude=52.2864669620795&Longitude=4.68239055845954&CountryCode=NL&DeliveryD
95
+ # ate=24-12-2022&OpeningTime=09%3A00%3A00" \
96
+ # -H "Accept: application/json" \
97
+ # -H "apikey: APIKEY-HERE" \
98
+ # ```
99
+ # @param [Float] latitude Required parameter: The latitude of the location
100
+ # @param [Float] longitude Required parameter: The longitude of the
101
+ # location
102
+ # @param [CountrycodeEnum] country_code Required parameter: The coutry for
103
+ # which the coordinates are provided
104
+ # @param [String] delivery_date Optional parameter: The date of the earliest
105
+ # delivery date. Format: dd-MM-yyyy. Note: this date cannot be in the past,
106
+ # otherwise an error is returned.
107
+ # @param [String] opening_time Optional parameter: Opening time filter.
108
+ # Format: hh:mm:ss. This field will be used to filter out locations that are
109
+ # closed at the time provided.
110
+ # @param [Array[LocationsDeliveryOptionEnum]] delivery_options Optional
111
+ # parameter: The pickup location types for which locations should be
112
+ # filtered. By default all location types are returned (PG = Retail points
113
+ # and parcel lockers). This can be used to filter on only parcel lockers
114
+ # (PA) or specifically exclude parcel lockers from the response (PG_EX).
115
+ # @return [ApiResponse] Complete http response with raw body and status code.
116
+ def get_pickup_locations_by_coordinates(latitude,
117
+ longitude,
118
+ country_code,
119
+ delivery_date: nil,
120
+ opening_time: nil,
121
+ delivery_options: nil)
122
+ @api_call
123
+ .request(new_request_builder(HttpMethodEnum::GET,
124
+ '/shipment/v2_1/locations/nearest/geocode',
125
+ Server::POSTNL)
126
+ .query_param(new_parameter(latitude, key: 'Latitude'))
127
+ .query_param(new_parameter(longitude, key: 'Longitude'))
128
+ .query_param(new_parameter(country_code, key: 'CountryCode'))
129
+ .query_param(new_parameter(delivery_date, key: 'DeliveryDate'))
130
+ .query_param(new_parameter(opening_time, key: 'OpeningTime'))
131
+ .query_param(new_parameter(delivery_options, key: 'DeliveryOptions'))
132
+ .header_param(new_parameter('application/json', key: 'accept'))
133
+ .auth(Single.new('APIKeyHeader')))
134
+ .response(new_response_handler
135
+ .deserializer(APIHelper.method(:custom_type_deserializer))
136
+ .deserialize_into(LocationsResponseMultiple.method(:from_hash))
137
+ .is_api_response(true)
138
+ .local_error('400',
139
+ 'Invalid request',
140
+ InvalidRequestException)
141
+ .local_error('401',
142
+ 'Invalid apikey',
143
+ UnauthorizedException)
144
+ .local_error('405',
145
+ 'Method not allowed',
146
+ MethodNotAllowedOnlyGetPostException)
147
+ .local_error('429',
148
+ 'Too many requests',
149
+ TooManyRequestsException)
150
+ .local_error('500',
151
+ 'Internal server error',
152
+ InternalServerErrorException))
153
+ .execute
154
+ end
155
+
156
+ # Request example:
157
+ # ```
158
+ # curl -X GET
159
+ # "https://api-sandbox.postnl.nl/shipment/v2_1/locations/area?LatitudeNorth=
160
+ # 52.156439&LongitudeWest=5.015643&LatitudeSouth=52.017473&LongitudeEast=5.0
161
+ # 65254&CountryCode=NL&DeliveryDate=24-12-2023&OpeningTime=09%3A00%3A00" \
162
+ # -H "Accept: application/json" \
163
+ # -H "apikey: APIKEY-HERE" \
164
+ # ```
165
+ # @param [Float] latitude_north Required parameter: The northmost
166
+ # coordinates of the area
167
+ # @param [Float] longitude_west Required parameter: The westmost coordinates
168
+ # of the area
169
+ # @param [Float] latitude_south Required parameter: The southmost
170
+ # coordinates of the area
171
+ # @param [Float] longitude_east Required parameter: The eastmost coordinates
172
+ # of the area
173
+ # @param [CountrycodeEnum] country_code Required parameter: Example:
174
+ # @param [String] delivery_date Optional parameter: The date of the earliest
175
+ # delivery date. Format: dd-MM-yyyy. Note: this date cannot be in the past,
176
+ # otherwise an error is returned.
177
+ # @param [String] opening_time Optional parameter: Opening time filter.
178
+ # Format: hh:mm:ss. This field will be used to filter out locations that are
179
+ # closed at the time provided.
180
+ # @param [Array[LocationsDeliveryOptionEnum]] delivery_options Optional
181
+ # parameter: The pickup location types for which locations should be
182
+ # filtered. By default all location types are returned (PG = Retail points
183
+ # and parcel lockers). This can be used to filter on only parcel lockers
184
+ # (PA) or specifically exclude parcel lockers from the response (PG_EX).
185
+ # @return [ApiResponse] Complete http response with raw body and status code.
186
+ def get_pickup_locations_within_area(latitude_north,
187
+ longitude_west,
188
+ latitude_south,
189
+ longitude_east,
190
+ country_code,
191
+ delivery_date: nil,
192
+ opening_time: nil,
193
+ delivery_options: nil)
194
+ @api_call
195
+ .request(new_request_builder(HttpMethodEnum::GET,
196
+ '/shipment/v2_1/locations/area',
197
+ Server::POSTNL)
198
+ .query_param(new_parameter(latitude_north, key: 'LatitudeNorth'))
199
+ .query_param(new_parameter(longitude_west, key: 'LongitudeWest'))
200
+ .query_param(new_parameter(latitude_south, key: 'LatitudeSouth'))
201
+ .query_param(new_parameter(longitude_east, key: 'LongitudeEast'))
202
+ .query_param(new_parameter(country_code, key: 'CountryCode'))
203
+ .query_param(new_parameter(delivery_date, key: 'DeliveryDate'))
204
+ .query_param(new_parameter(opening_time, key: 'OpeningTime'))
205
+ .query_param(new_parameter(delivery_options, key: 'DeliveryOptions'))
206
+ .header_param(new_parameter('application/json', key: 'accept'))
207
+ .auth(Single.new('APIKeyHeader')))
208
+ .response(new_response_handler
209
+ .deserializer(APIHelper.method(:custom_type_deserializer))
210
+ .deserialize_into(LocationsResponseMultiple.method(:from_hash))
211
+ .is_api_response(true)
212
+ .local_error('400',
213
+ 'Invalid request',
214
+ InvalidRequestException)
215
+ .local_error('401',
216
+ 'Invalid apikey',
217
+ UnauthorizedException)
218
+ .local_error('405',
219
+ 'Method not allowed',
220
+ MethodNotAllowedOnlyGetPostException)
221
+ .local_error('429',
222
+ 'Too many requests',
223
+ TooManyRequestsException)
224
+ .local_error('500',
225
+ 'Internal server error',
226
+ InternalServerErrorException))
227
+ .execute
228
+ end
229
+
230
+ # Request example:
231
+ # ```
232
+ # curl -X GET
233
+ # "https://api-sandbox.postnl.nl/shipment/v2_1/locations/lookup?LocationCode
234
+ # =216877" \
235
+ # -H "Accept: application/json" \
236
+ # -H "apikey: APIKEY-HERE"
237
+ # ```
238
+ # @param [String] location_code Required parameter: LocationCode
239
+ # information
240
+ # @return [ApiResponse] Complete http response with raw body and status code.
241
+ def get_pickup_location(location_code)
242
+ @api_call
243
+ .request(new_request_builder(HttpMethodEnum::GET,
244
+ '/shipment/v2_1/locations/lookup',
245
+ Server::POSTNL)
246
+ .query_param(new_parameter(location_code, key: 'LocationCode'))
247
+ .header_param(new_parameter('application/json', key: 'accept'))
248
+ .auth(Single.new('APIKeyHeader')))
249
+ .response(new_response_handler
250
+ .deserializer(APIHelper.method(:custom_type_deserializer))
251
+ .deserialize_into(LocationResponseSingle.method(:from_hash))
252
+ .is_api_response(true)
253
+ .local_error('400',
254
+ 'Invalid request',
255
+ InvalidRequestException)
256
+ .local_error('401',
257
+ 'Invalid apikey',
258
+ UnauthorizedException)
259
+ .local_error('405',
260
+ 'Method not allowed',
261
+ MethodNotAllowedOnlyGetPostException)
262
+ .local_error('429',
263
+ 'Too many requests',
264
+ TooManyRequestsException)
265
+ .local_error('500',
266
+ 'Internal server error',
267
+ InternalServerErrorException))
268
+ .execute
269
+ end
270
+ end
271
+ end