UNPKG

shopee-client

Version:
167 lines (166 loc) 7.83 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var BaseModule_1 = __importDefault(require("../BaseModule")); var hmac_1 = __importDefault(require("../../helper/hmac")); var handleReject_1 = __importDefault(require("../../helper/handleReject")); var FirstMileModule = /** @class */ (function (_super) { __extends(FirstMileModule, _super); function FirstMileModule() { return _super !== null && _super.apply(this, arguments) || this; } /** * Use this API to generate first-mile tracking number for the shipment method of pickup. * Please note that the prerequisite for using this API is that the order status is ready_to_ship and the tracking number of order has been obtained. * Only applicable to cross-border sellers in China. * @param request */ FirstMileModule.prototype.generateFMTracking = function (request) { var full_url = this.client.defaults.baseURL + 'fm_tn/generate'; var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }); var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params)); return this.client.post('fm_tn/generate', params, { headers: { Authorization: hmac } }).then(handleReject_1.default); }; /** * Use this API to fetch first-mile tracking numbers of the shop. * Only applicable to cross-border sellers in China. * @param request */ FirstMileModule.prototype.getShopFMTracking = function (request) { var full_url = this.client.defaults.baseURL + 'fm_tn/get'; var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }); var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params)); return this.client.post('fm_tn/get', params, { headers: { Authorization: hmac } }).then(handleReject_1.default); }; /** * Use this API to bind orders with the first-mile tracking number. * Only applicable to cross-border sellers in China. * @param request */ FirstMileModule.prototype.firstMileCodeBind = function (request) { var full_url = this.client.defaults.baseURL + 'fm_tn/bind'; var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }); var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params)); return this.client.post('fm_tn/bind', params, { headers: { Authorization: hmac } }).then(handleReject_1.default); }; /** * Use this API to unbind orders with the first-mile tracking number. * Only applicable to cross-border sellers in China. * @param request */ FirstMileModule.prototype.firstMileUnbind = function (request) { var full_url = this.client.defaults.baseURL + 'fm_tn/unbind'; var params = __assign(__assign({}, request), { partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000) }); var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params)); return this.client.post('fm_tn/unbind', params, { headers: { Authorization: hmac } }).then(handleReject_1.default); }; /** * Use this API to fetch the detailed information of first-mile tracking number. * Only applicable to cross-border sellers in China. * @param request */ FirstMileModule.prototype.getFmTnDetail = function (fm_tn) { var full_url = this.client.defaults.baseURL + 'fm_tn/detail'; var params = { fm_tn: fm_tn, partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000), }; var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params)); return this.client.post('fm_tn/detail', params, { headers: { Authorization: hmac } }).then(handleReject_1.default); }; /** * Use the API to get the waybill of first-mile tracking number. * Please note that this API only used for the shipment method of pickup. * Only applicable to cross-border sellers in China. * @param fm_tn_list The set of first-mile tracking numbers. Up to 50 tracking numbers in one call. * @param is_batch Option to get batch airway bills in single file. Default value is false. */ FirstMileModule.prototype.getFmTrackingNoWaybill = function (fm_tn_list, is_batch) { var full_url = this.client.defaults.baseURL + 'fm_tn/waybill'; var params = { fm_tn_list: fm_tn_list, partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000), }; if (typeof is_batch == 'boolean') { params.is_batch = is_batch; } var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params)); return this.client.post('fm_tn/waybill', params, { headers: { Authorization: hmac } }).then(handleReject_1.default); }; /** * Use this call to get all supported logistic channels for first mile. * Only applicable to cross-border sellers in China. * @param area Use this field to specify the region you want to ship parcel. sample: cn */ FirstMileModule.prototype.getShopFMChannel = function (area) { var full_url = this.client.defaults.baseURL + 'fm_tn/channels'; var params = { area: area, partner_id: Number(this.config.partner_id), shopid: Number(this.config.shop_id), timestamp: Math.round(Date.now() / 1000), }; var hmac = hmac_1.default(this.config.partner_key || '', full_url + '|' + JSON.stringify(params)); return this.client.post('fm_tn/channels', params, { headers: { Authorization: hmac } }).then(handleReject_1.default); }; return FirstMileModule; }(BaseModule_1.default)); exports.default = FirstMileModule;