sdksio-postnl-ecommerce-apis-sdk
Version:
Collection of PostNL API's for ecommerce processes
156 lines • 8.72 kB
JavaScript
/**
* PostNL Ecommerce APIsLib
*
* This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
import { ShippingstatusMethodNotAllowedError, } from '../errors/shippingstatusMethodNotAllowedError';
import { ShippingstatusResponseError, } from '../errors/shippingstatusResponseError';
import { ShippingstatusTooManyRequestError, } from '../errors/shippingstatusTooManyRequestError';
import { ShippingstatusUnauthorizedError, } from '../errors/shippingstatusUnauthorizedError';
import { languageEnumSchema } from '../models/languageEnum';
import { shippingstatusResponseSchema, } from '../models/shippingstatusResponse';
import { shippingstatusResponseSignatureSchema, } from '../models/shippingstatusResponseSignature';
import { shippingstatusResponseUpdatedShipmentSchema, } from '../models/shippingstatusResponseUpdatedShipment';
import { array, boolean, optional, string } from '../schema';
import { BaseController } from './baseController';
export class TrackTraceController extends BaseController {
/**
* Request example:
* ```
* curl -X GET "https://api-sandbox.postnl.nl/shipment/v2/status/barcode/3SDEVC172649258" \
* -H "Accept: application/json" \
* -H "apikey: APIKEY-HERE" \
* ```
*
*
* @param barcode Barcode of the shipment. This is a unique value.
* @param detail Option to include old statuses in the response
* @param language Language of the returned shipment and status descriptions (default is Dutch).
* @param maxDays Limit the number of days that will be searched (decrease this amount for better
* performance).
* @return Response from the API call
*/
async returnsTheStatusesForAParticularBarcode(barcode, detail, language, maxDays, requestOptions) {
const req = this.createRequest('GET');
const mapped = req.prepareArgs({
barcode: [barcode, string()],
detail: [detail, optional(boolean())],
language: [language, optional(languageEnumSchema)],
maxDays: [maxDays, optional(string())],
});
req.query('detail', mapped.detail);
req.query('language', mapped.language);
req.query('maxDays', mapped.maxDays);
req.appendTemplatePath `/shipment/v2/status/barcode/${mapped.barcode}`;
req.throwOn(400, ShippingstatusResponseError, 'Invalid request');
req.throwOn(401, ShippingstatusUnauthorizedError, 'Invalid apikey');
req.throwOn(405, ShippingstatusMethodNotAllowedError, 'Method not allowed');
req.throwOn(429, ShippingstatusTooManyRequestError, 'Too many requests');
req.throwOn(500, ShippingstatusResponseError, 'Internal server error');
return req.callAsJson(shippingstatusResponseSchema, requestOptions);
}
/**
* Request example:
* ```
* curl -X GET "https://api-sandbox.postnl.nl/shipment/v2/status/reference?
* detail=true&language=NL&customerCode={{CustomerCode}}&customerNumber={{CustomerNumber}}&reference=RE
* F98173245876329" \
* -H "Accept: application/json" \
* -H "apikey: APIKEY-HERE"
* ```
*
*
* @param customerCode Customer code as known at PostNL Pakketten
* @param customerNumber Customer number as known at PostNL Pakketten
* @param referenceId The customer reference belonging to the shipment
* @param detail Option to include old statuses in the response
* @param language Language of the returned shipment and status descriptions (default is
* Dutch).
* @param maxDays Limit the number of days that will be searched (decrease this amount for
* better performance). By default this is 90 days in the past.
* @return Response from the API call
*/
async getStatusInformationByCustomerReference(customerCode, customerNumber, referenceId, detail, language, maxDays, requestOptions) {
const req = this.createRequest('GET');
const mapped = req.prepareArgs({
customerCode: [customerCode, string()],
customerNumber: [customerNumber, string()],
referenceId: [referenceId, string()],
detail: [detail, optional(boolean())],
language: [language, optional(languageEnumSchema)],
maxDays: [maxDays, optional(string())],
});
req.query('customerCode', mapped.customerCode);
req.query('customerNumber', mapped.customerNumber);
req.query('detail', mapped.detail);
req.query('language', mapped.language);
req.query('maxDays', mapped.maxDays);
req.appendTemplatePath `/shipment/v2/status/reference/${mapped.referenceId}`;
req.throwOn(400, ShippingstatusResponseError, 'Invalid request');
req.throwOn(401, ShippingstatusUnauthorizedError, 'Invalid apikey');
req.throwOn(405, ShippingstatusMethodNotAllowedError, 'Method not allowed');
req.throwOn(429, ShippingstatusTooManyRequestError, 'Too many requests');
req.throwOn(500, ShippingstatusResponseError, 'Internal server error');
return req.callAsJson(shippingstatusResponseSchema, requestOptions);
}
/**
* Request example:
* ```
* curl -X GET "https://api-sandbox.postnl.nl/shipment/v2/status/signature/3SDEVC172649258" \
* -H "Accept: application/json" \
* -H "apikey: APIKEY-HERE"
* ```
*
*
* @param barcode Barcode of the shipment
* @return Response from the API call
*/
async returnsTheSignatureOfAParticularShipment(barcode, requestOptions) {
const req = this.createRequest('GET');
const mapped = req.prepareArgs({ barcode: [barcode, string()] });
req.appendTemplatePath `/shipment/v2/status/signature/${mapped.barcode}`;
req.throwOn(400, ShippingstatusResponseError, 'Invalid request');
req.throwOn(401, ShippingstatusUnauthorizedError, 'Invalid apikey');
req.throwOn(405, ShippingstatusMethodNotAllowedError, 'Method not allowed');
req.throwOn(429, ShippingstatusTooManyRequestError, 'Too many requests');
req.throwOn(500, ShippingstatusResponseError, 'Internal server error');
return req.callAsJson(shippingstatusResponseSignatureSchema, requestOptions);
}
/**
* Request example:
* ```
* curl -X GET "https://api-sandbox.postnl.nl/shipment/v2/status/11223344/updatedshipments?period=2022-
* 12-25T10:00:00&period=2022-12-25T10:12:00" \
* -H "Accept: application/json" \
* -H "apikey: APIKEY-HERE" \
* ```
*
*
* @param customernumber Your customer number
* @param period Optional array which defines a specific period in which to return updated
* shipments. For optimal results, schedule calls at a frequency between 5-15
* minutes and align the requested period accordingly to ensure complete coverage
* of past updates. Shorter periods yield improved response times. The API
* accommodates a maximum requested period of 2 hours, granting access to shipment
* data up to 48 hours in the past. Please use the following format: YYYY-MM-DDTHH:
* MM:SS and repeat this variable to define the period (e.g. /updatedshipments?
* period=2022-11-07T12:00:00.000&period=2022-11-07T12:05:00.000).
* @return Response from the API call
*/
async returnsTheUpdatedStatusesForAParticularCustomerNumber(customernumber, period, requestOptions) {
const req = this.createRequest('GET');
const mapped = req.prepareArgs({
customernumber: [customernumber, string()],
period: [period, optional(array(string()))],
});
req.query('period', mapped.period);
req.appendTemplatePath `/shipment/v2/status/${mapped.customernumber}/updatedshipments`;
req.throwOn(400, ShippingstatusResponseError, 'Invalid request');
req.throwOn(401, ShippingstatusUnauthorizedError, 'Invalid apikey');
req.throwOn(405, ShippingstatusMethodNotAllowedError, 'Method not allowed');
req.throwOn(429, ShippingstatusTooManyRequestError, 'Too many requests');
req.throwOn(500, ShippingstatusResponseError, 'Internal server error');
return req.callAsJson(array(shippingstatusResponseUpdatedShipmentSchema), requestOptions);
}
}
//# sourceMappingURL=trackTraceController.js.map