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.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +164 -0
- data/bin/console +15 -0
- data/lib/postnl_ecommerce/api_helper.rb +10 -0
- data/lib/postnl_ecommerce/client.rb +126 -0
- data/lib/postnl_ecommerce/configuration.rb +195 -0
- data/lib/postnl_ecommerce/controllers/barcode_controller.rb +71 -0
- data/lib/postnl_ecommerce/controllers/base_controller.rb +60 -0
- data/lib/postnl_ecommerce/controllers/checkout_controller.rb +45 -0
- data/lib/postnl_ecommerce/controllers/confirming_controller.rb +45 -0
- data/lib/postnl_ecommerce/controllers/deliverydate_controller.rb +233 -0
- data/lib/postnl_ecommerce/controllers/labelling_controller.rb +52 -0
- data/lib/postnl_ecommerce/controllers/locations_controller.rb +271 -0
- data/lib/postnl_ecommerce/controllers/postalcode_check_controller.rb +60 -0
- data/lib/postnl_ecommerce/controllers/shipment_controller.rb +52 -0
- data/lib/postnl_ecommerce/controllers/shipping_status_controller.rb +222 -0
- data/lib/postnl_ecommerce/controllers/timeframes_controller.rb +90 -0
- data/lib/postnl_ecommerce/exceptions/api_exception.rb +21 -0
- data/lib/postnl_ecommerce/exceptions/barcode_response_invalid_exception.rb +57 -0
- data/lib/postnl_ecommerce/exceptions/confirming_response_error_exception.rb +55 -0
- data/lib/postnl_ecommerce/exceptions/internal_server_error_exception.rb +46 -0
- data/lib/postnl_ecommerce/exceptions/invalid_request_exception.rb +62 -0
- data/lib/postnl_ecommerce/exceptions/labelling_response_invalid_exception.rb +57 -0
- data/lib/postnl_ecommerce/exceptions/method_not_allowed_only_get_exception.rb +53 -0
- data/lib/postnl_ecommerce/exceptions/method_not_allowed_only_get_post_exception.rb +53 -0
- data/lib/postnl_ecommerce/exceptions/method_not_allowed_only_post_exception.rb +53 -0
- data/lib/postnl_ecommerce/exceptions/postalcode_check_response_invalid_exception.rb +55 -0
- data/lib/postnl_ecommerce/exceptions/too_many_requests_exception.rb +53 -0
- data/lib/postnl_ecommerce/exceptions/unauthorized_exception.rb +53 -0
- data/lib/postnl_ecommerce/http/api_response.rb +19 -0
- data/lib/postnl_ecommerce/http/auth/custom_header_authentication.rb +52 -0
- data/lib/postnl_ecommerce/http/http_call_back.rb +10 -0
- data/lib/postnl_ecommerce/http/http_method_enum.rb +10 -0
- data/lib/postnl_ecommerce/http/http_request.rb +10 -0
- data/lib/postnl_ecommerce/http/http_response.rb +10 -0
- data/lib/postnl_ecommerce/http/proxy_settings.rb +22 -0
- data/lib/postnl_ecommerce/models/address.rb +240 -0
- data/lib/postnl_ecommerce/models/address_type_enum.rb +36 -0
- data/lib/postnl_ecommerce/models/amount.rb +138 -0
- data/lib/postnl_ecommerce/models/barcode_error.rb +71 -0
- data/lib/postnl_ecommerce/models/barcode_response.rb +62 -0
- data/lib/postnl_ecommerce/models/base_model.rb +110 -0
- data/lib/postnl_ecommerce/models/checkout_address.rb +120 -0
- data/lib/postnl_ecommerce/models/checkout_cut_off_day_enum.rb +61 -0
- data/lib/postnl_ecommerce/models/checkout_cut_off_time.rb +91 -0
- data/lib/postnl_ecommerce/models/checkout_cut_off_type_enum.rb +40 -0
- data/lib/postnl_ecommerce/models/checkout_delivery_option.rb +81 -0
- data/lib/postnl_ecommerce/models/checkout_location.rb +126 -0
- data/lib/postnl_ecommerce/models/checkout_option_enum.rb +64 -0
- data/lib/postnl_ecommerce/models/checkout_pickup_address.rb +112 -0
- data/lib/postnl_ecommerce/models/checkout_pickup_option.rb +103 -0
- data/lib/postnl_ecommerce/models/checkout_request.rb +152 -0
- data/lib/postnl_ecommerce/models/checkout_response.rb +110 -0
- data/lib/postnl_ecommerce/models/checkout_time_frame.rb +108 -0
- data/lib/postnl_ecommerce/models/checkout_warning.rb +95 -0
- data/lib/postnl_ecommerce/models/checkout_warning_option_enum.rb +68 -0
- data/lib/postnl_ecommerce/models/code_enum.rb +44 -0
- data/lib/postnl_ecommerce/models/complete_status.rb +62 -0
- data/lib/postnl_ecommerce/models/complete_status_shipment.rb +270 -0
- data/lib/postnl_ecommerce/models/confirming_custom.rb +239 -0
- data/lib/postnl_ecommerce/models/confirming_custom_content.rb +113 -0
- data/lib/postnl_ecommerce/models/confirming_error.rb +71 -0
- data/lib/postnl_ecommerce/models/confirming_message.rb +70 -0
- data/lib/postnl_ecommerce/models/confirming_request.rb +86 -0
- data/lib/postnl_ecommerce/models/confirming_response.rb +71 -0
- data/lib/postnl_ecommerce/models/confirming_response_shipment.rb +103 -0
- data/lib/postnl_ecommerce/models/confirming_shipment.rb +472 -0
- data/lib/postnl_ecommerce/models/contact.rb +101 -0
- data/lib/postnl_ecommerce/models/countrycode_enum.rb +36 -0
- data/lib/postnl_ecommerce/models/currency_enum.rb +44 -0
- data/lib/postnl_ecommerce/models/currency_labelling_api_enum.rb +36 -0
- data/lib/postnl_ecommerce/models/current_status.rb +62 -0
- data/lib/postnl_ecommerce/models/current_status_shipment.rb +207 -0
- data/lib/postnl_ecommerce/models/customer.rb +123 -0
- data/lib/postnl_ecommerce/models/customer_address.rb +237 -0
- data/lib/postnl_ecommerce/models/customs.rb +238 -0
- data/lib/postnl_ecommerce/models/customs_labelling_api.rb +238 -0
- data/lib/postnl_ecommerce/models/delivery_options.rb +64 -0
- data/lib/postnl_ecommerce/models/deliverydate_delivery_response.rb +87 -0
- data/lib/postnl_ecommerce/models/deliverydate_option_enum.rb +56 -0
- data/lib/postnl_ecommerce/models/deliverydate_options.rb +65 -0
- data/lib/postnl_ecommerce/models/deliverydate_shipping_response.rb +62 -0
- data/lib/postnl_ecommerce/models/detail.rb +62 -0
- data/lib/postnl_ecommerce/models/dimension.rb +106 -0
- data/lib/postnl_ecommerce/models/error.rb +73 -0
- data/lib/postnl_ecommerce/models/event.rb +127 -0
- data/lib/postnl_ecommerce/models/expectation.rb +71 -0
- data/lib/postnl_ecommerce/models/extra_field.rb +71 -0
- data/lib/postnl_ecommerce/models/fault.rb +71 -0
- data/lib/postnl_ecommerce/models/fault_shipping_status_api.rb +71 -0
- data/lib/postnl_ecommerce/models/friday.rb +62 -0
- data/lib/postnl_ecommerce/models/get_locations_result_multiple.rb +71 -0
- data/lib/postnl_ecommerce/models/get_locations_result_single.rb +62 -0
- data/lib/postnl_ecommerce/models/group.rb +97 -0
- data/lib/postnl_ecommerce/models/hazardous_material.rb +178 -0
- data/lib/postnl_ecommerce/models/labelling_customer.rb +123 -0
- data/lib/postnl_ecommerce/models/labelling_customer_labelling_api.rb +123 -0
- data/lib/postnl_ecommerce/models/labelling_customer_message.rb +83 -0
- data/lib/postnl_ecommerce/models/labelling_customer_shipment.rb +484 -0
- data/lib/postnl_ecommerce/models/labelling_customer_shipment_labelling_api.rb +484 -0
- data/lib/postnl_ecommerce/models/labelling_customs_content.rb +111 -0
- data/lib/postnl_ecommerce/models/labelling_error.rb +81 -0
- data/lib/postnl_ecommerce/models/labelling_label.rb +84 -0
- data/lib/postnl_ecommerce/models/labelling_merged_label.rb +80 -0
- data/lib/postnl_ecommerce/models/labelling_request.rb +112 -0
- data/lib/postnl_ecommerce/models/labelling_response.rb +95 -0
- data/lib/postnl_ecommerce/models/labelling_response_shipment.rb +123 -0
- data/lib/postnl_ecommerce/models/language_enum.rb +48 -0
- data/lib/postnl_ecommerce/models/location.rb +174 -0
- data/lib/postnl_ecommerce/models/location_response_single.rb +63 -0
- data/lib/postnl_ecommerce/models/locations_address.rb +122 -0
- data/lib/postnl_ecommerce/models/locations_delivery_option_enum.rb +40 -0
- data/lib/postnl_ecommerce/models/locations_opening_hours.rb +121 -0
- data/lib/postnl_ecommerce/models/locations_response_multiple.rb +63 -0
- data/lib/postnl_ecommerce/models/monday.rb +62 -0
- data/lib/postnl_ecommerce/models/no_timeframes_options.rb +62 -0
- data/lib/postnl_ecommerce/models/old_status.rb +106 -0
- data/lib/postnl_ecommerce/models/opening_hours.rb +121 -0
- data/lib/postnl_ecommerce/models/opening_hours_per_day.rb +71 -0
- data/lib/postnl_ecommerce/models/options.rb +64 -0
- data/lib/postnl_ecommerce/models/origin_country_code_enum.rb +36 -0
- data/lib/postnl_ecommerce/models/postalcode_check_address.rb +116 -0
- data/lib/postnl_ecommerce/models/postalcode_check_error.rb +81 -0
- data/lib/postnl_ecommerce/models/product_option.rb +74 -0
- data/lib/postnl_ecommerce/models/reason_no_timeframe.rb +104 -0
- data/lib/postnl_ecommerce/models/reason_no_timeframes.rb +71 -0
- data/lib/postnl_ecommerce/models/saturday.rb +62 -0
- data/lib/postnl_ecommerce/models/shipment_type_enum.rb +50 -0
- data/lib/postnl_ecommerce/models/shippingstatus_address.rb +204 -0
- data/lib/postnl_ecommerce/models/shippingstatus_amount.rb +75 -0
- data/lib/postnl_ecommerce/models/shippingstatus_customer.rb +83 -0
- data/lib/postnl_ecommerce/models/shippingstatus_dimension.rb +101 -0
- data/lib/postnl_ecommerce/models/shippingstatus_product_option.rb +74 -0
- data/lib/postnl_ecommerce/models/shippingstatus_product_options.rb +63 -0
- data/lib/postnl_ecommerce/models/shippingstatus_response.rb +94 -0
- data/lib/postnl_ecommerce/models/shippingstatus_response_signature.rb +71 -0
- data/lib/postnl_ecommerce/models/shippingstatus_response_updated_shipment.rb +105 -0
- data/lib/postnl_ecommerce/models/shippingstatus_warning.rb +71 -0
- data/lib/postnl_ecommerce/models/signature.rb +84 -0
- data/lib/postnl_ecommerce/models/status.rb +108 -0
- data/lib/postnl_ecommerce/models/sunday.rb +62 -0
- data/lib/postnl_ecommerce/models/sustainability.rb +73 -0
- data/lib/postnl_ecommerce/models/thursday.rb +62 -0
- data/lib/postnl_ecommerce/models/timeframe.rb +71 -0
- data/lib/postnl_ecommerce/models/timeframe_options_enum.rb +60 -0
- data/lib/postnl_ecommerce/models/timeframe_response.rb +74 -0
- data/lib/postnl_ecommerce/models/timeframe_timeframe.rb +96 -0
- data/lib/postnl_ecommerce/models/timeframes.rb +71 -0
- data/lib/postnl_ecommerce/models/timeframes_response_object.rb +71 -0
- data/lib/postnl_ecommerce/models/tuesday.rb +62 -0
- data/lib/postnl_ecommerce/models/type_enum.rb +64 -0
- data/lib/postnl_ecommerce/models/updated_shipment_status.rb +108 -0
- data/lib/postnl_ecommerce/models/warning.rb +71 -0
- data/lib/postnl_ecommerce/models/warnings.rb +62 -0
- data/lib/postnl_ecommerce/models/wednesday.rb +62 -0
- data/lib/postnl_ecommerce/utilities/date_time_helper.rb +11 -0
- data/lib/postnl_ecommerce/utilities/file_wrapper.rb +28 -0
- data/lib/postnl_ecommerce.rb +188 -0
- data/test/controllers/controller_test_base.rb +23 -0
- data/test/controllers/test_barcode_controller.rb +52 -0
- data/test/controllers/test_checkout_controller.rb +63 -0
- data/test/controllers/test_confirming_controller.rb +54 -0
- data/test/controllers/test_deliverydate_controller.rb +60 -0
- data/test/controllers/test_labelling_controller.rb +57 -0
- data/test/controllers/test_locations_controller.rb +185 -0
- data/test/controllers/test_postalcode_check_controller.rb +55 -0
- data/test/controllers/test_shipment_controller.rb +57 -0
- data/test/controllers/test_shipping_status_controller.rb +209 -0
- data/test/controllers/test_timeframes_controller.rb +67 -0
- data/test/http_response_catcher.rb +19 -0
- 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&ShippingDuration=1&CutOffTime=17%3
|
|
14
|
+
# A00%3A00&PostalCode=2132WT&CountryCode=NL&City=Hoofddorp&S
|
|
15
|
+
# treet=Siriusdreef&HouseNumber=42&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&ShippingDuration=1&PostalCode=2132WT&Countr
|
|
162
|
+
# yCode=NL&City=Hoofddorp&Street=Siriusdreef&HouseNumber=42&
|
|
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
|