@shipengine/connect
Version:
The official developer tooling for building ShipEngine connect apps
50 lines • 1.93 kB
JavaScript
;
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