shopee-client
Version:
Shoppe Open API Client
167 lines (166 loc) • 7.83 kB
JavaScript
"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;