route4me-node
Version:
Access Route4Me's logistics-as-a-service API using our Node.js SDK
171 lines (149 loc) • 4.72 kB
JavaScript
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var utils = require("./../utils");
/**
* Territories facility
*
* @category Territories
*/
var Territories = function () {
/**
* Constructor
*
* @see {@link https://route4me.io/docs/#territories}
* @since 0.1.8
* @private
*
* @param {RequestManager} requestManager - Request Manager
* @return {Territories} - Territories facility
*/
function Territories(requestManager) {
_classCallCheck(this, Territories);
this.r = requestManager;
}
/**
* Create a new Territory.
*
* @see {@link https://route4me.io/docs/#create-a-territory}
* @since 0.1.8
*
* @param {jsonschema:Territories.Territory} data - Valid Territory data.
* @param {module:route4me-node~RequestCallback<jsonschema:Territories.Territory>}
* [callback]
*/
_createClass(Territories, [{
key: "create",
value: function create(data, callback) {
return this.r._makeRequest({
method: "POST",
path: "/api.v4/territory.php",
body: data,
validationContext: "Territories.Territory"
}, callback);
}
/**
* Get a specified Territory by ID.
*
* @see {@link https://route4me.io/docs/#get-a-territory}
* @since 0.1.8
*
* @param {string} id - Territory ID
* @param {Object} [options] - Additional options for `get`
* @param {boolean} [options.includeAddresses=false] - If true, enclosed
* addresses will be included in a response
* @param {module:route4me-node~RequestCallback<jsonschema:Territories.Territory>} [callback]
*/
}, {
key: "get",
value: function get(id, options, callback) {
var cb = callback;
var opt = options;
if ("undefined" === typeof cb && "function" === typeof opt) {
cb = opt;
opt = {};
}
opt = opt || {};
var includeAddresses = false;
if (undefined !== opt.includeAddresses) {
includeAddresses = !!opt.includeAddresses;
}
return this.r._makeRequest({
method: "GET",
path: "/api.v4/territory.php",
qs: {
"territory_id": id,
"addresses": includeAddresses ? "1" : "0"
},
validationContext: "Territories.Territory"
}, cb);
}
/**
* GET all of the Territories defined by a user.
*
* @see {@link https://route4me.io/docs/#get-multiple-territories}
* @since 0.1.8
*
* @todo TODO: There is no schema for the response, but it is just an array of known schema
*
* @param {module:route4me-node~RequestCallback<jsonschema:Territories.Territories>} [callback]
*/
}, {
key: "list",
value: function list(callback) {
return this.r._makeRequest({
method: "GET",
path: "/api.v4/territory.php",
validationContext: "Territories.Territories"
}, callback);
}
/**
* UPDATE a specified Territory.
*
* @see {@link https://route4me.io/docs/#update-a-territory}
* @since 0.1.8
*
* @param {string} id - Territory ID
* @param {jsonschema:Territories.Territory} data - Valid Territory data.
* @param {module:route4me-node~RequestCallback<jsonschema:Territories.Territory>}
* [callback]
*/
}, {
key: "update",
value: function update(id, data, callback) {
return this.r._makeRequest({
method: "PUT",
path: "/api.v4/territory.php",
qs: {
"territory_id": id
},
body: data,
validationContext: "Territories.Territory"
}, callback);
}
/**
* DELETE a specified Territory.
*
* @see {@link https://route4me.io/docs/#remove-a-territory}
* @since 0.1.8
*
* @param {string} id - Territory ID
* @param {module:route4me-node~RequestCallback<boolean>}
* [callback]
*/
}, {
key: "remove",
value: function remove(id, callback) {
return this.r._makeRequest({
method: "DELETE",
path: "/api.v4/territory.php",
qs: {
"territory_id": id
},
validationContext: utils.CustomInternalPostProcessing.fromJsonWithStatus
}, callback);
}
}]);
return Territories;
}();
module.exports = Territories;