UNPKG

bananas-commerce

Version:

A client for bananas-commerce with support for TypeScript

51 lines (50 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Webshipper = void 0; const casedObjectKeys_js_1 = require("../util/casedObjectKeys.js"); const formatVariableResult_js_1 = require("../util/formatVariableResult.js"); const extension_js_1 = require("../extension.js"); class Webshipper extends extension_js_1.Extension { constructor() { super(...arguments); Object.defineProperty(this, "name", { enumerable: true, configurable: true, writable: true, value: "webshipper" }); } async shippingOptions(args) { this.assertLoaded(); const { countryCode = this.defaults.countryCode, ...body } = args; const snakeBody = (0, casedObjectKeys_js_1.casedObjectKeys)(body, "snake"); const response = await this.catchApiError(this.fetcher .endpoint("/api/v1/webshipper/shipping-options/") .method("post")({ body: { ...snakeBody, delivery_address: { ...snakeBody["delivery_address"], country_code: countryCode, }, }, })); return (0, formatVariableResult_js_1.formatVariableResult)({ ...response, data: (0, casedObjectKeys_js_1.casedObjectKeys)(response.data, "camel") }, (response) => { switch (response.status) { case 200: return "success"; case 204: return "no-shipping-needed"; case 400: return "invalid-args"; case 404: return "not-found"; case 422: return "unprocessable"; case 503: return "internal-error"; } }); } } exports.Webshipper = Webshipper;