UNPKG

@shipengine/connect

Version:

The official developer tooling for building ShipEngine connect apps

50 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TemplateRequest = void 0; const tslib_1 = require("tslib"); const path_1 = tslib_1.__importDefault(require("path")); class TemplateRequest { language; body; } exports.TemplateRequest = TemplateRequest; class Documents { client; constructor(apiClient) { this.client = apiClient; } async getDocuments(request, template) { const carrier = request.metadata?.carrier_code ?? path_1.default.basename(path_1.default.resolve()); const filter = this.GetFilter(request.documentNames); const endpoint = template?.version?.startsWith('2') ? `documents${filter}?apiVersion=v2` : `documents/${carrier}${filter}`; const response = await this.client.call({ endpoint: endpoint, method: 'POST', body: this.createRequestBody(request, template), }); return response; } GetFilter(documentNames) { return Array.isArray(documentNames) && documentNames.length ? `/${documentNames?.join()}` : ''; } createRequestBody = (request, documentTemplate) => { const template = { body: documentTemplate, language: request.language }; if (documentTemplate?.version?.startsWith('2')) { return { template: template, document_dpi: request.document_dpi, label_format: request.label_format, transaction_id: request.transaction_id, payload: (({ language, documentNames, document_dpi, label_format, transaction_id, ...properties }) => properties)(request), }; } return { ...{ template: template }, ...(({ language, documentNames, ...properties }) => properties)(request), }; }; } exports.default = Documents; //# sourceMappingURL=documents.js.map