route4me-node
Version:
Access Route4Me's logistics-as-a-service API using our Node.js SDK
159 lines (141 loc) • 4.5 kB
JavaScript
"use strict";
/**
* AvoidanceZones facility
*
* @category AvoidanceZones
*/
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 AvoidanceZones = function () {
/**
* Constructor
*
* @see {@link https://route4me.io/docs/#avoidance-zones}
* @since 0.1.8
* @private
*
* @param {RequestManager} requestManager - Request Manager
* @return {AvoidanceZones} - AvoidanceZones facility
*/
function AvoidanceZones(requestManager) {
_classCallCheck(this, AvoidanceZones);
this.r = requestManager;
}
/**
* Create an Avoidance Zone.
*
* @see {@link https://route4me.io/docs/#duplicate-a-route}
* @since 0.1.8
*
* @param {jsonschema:AvoidanceZones.AvoidanceZone} data - Valid Avoidance Zone data.
* @param {module:route4me-node~RequestCallback<jsonschema:AvoidanceZones.AvoidanceZone>}
* [callback]
*/
_createClass(AvoidanceZones, [{
key: "create",
value: function create(data, callback) {
return this.r._makeRequest({
method: "POST",
path: "/api.v4/avoidance.php",
body: data,
validationContext: "AvoidanceZones.AvoidanceZone"
}, callback);
}
/**
* GET a specified Avoidance Zone by ID.
*
* @see {@link https://route4me.io/docs/#get-an-avoidance-zone}
* @since 0.1.8
*
* @param {string} id - Avoidance zone ID
* @param {module:route4me-node~RequestCallback<jsonschema:AvoidanceZones.AvoidanceZone>}
* [callback]
*/
}, {
key: "get",
value: function get(id, callback) {
return this.r._makeRequest({
method: "GET",
path: "/api.v4/avoidance.php",
qs: {
"territory_id": id
},
validationContext: "AvoidanceZones.AvoidanceZone"
}, callback);
}
/**
* GET all of the Avoidance Zones defined by a user.
*
* @see {@link https://route4me.io/docs/#get-multiple-avoidance-zones}
* @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:AvoidanceZones.AvoidanceZones>}
* [callback]
*/
}, {
key: "list",
value: function list(callback) {
return this.r._makeRequest({
method: "GET",
path: "/api.v4/avoidance.php",
validationContext: "AvoidanceZones.AvoidanceZones"
}, callback);
}
/**
* UPDATE a specified Avoidance Zone.
*
* @see {@link https://route4me.io/docs/#update-an-avoidance-zone}
* @since 0.1.8
*
* @param {string} id - Avoidance zone ID
* @param {jsonschema:AvoidanceZones.AvoidanceZone} data - Valid Avoidance Zone data.
* @param {module:route4me-node~RequestCallback<jsonschema:AvoidanceZones.AvoidanceZone>}
* [callback]
*/
}, {
key: "update",
value: function update(id, data, callback) {
return this.r._makeRequest({
method: "PUT",
path: "/api.v4/avoidance.php",
qs: {
"territory_id": id
},
body: data,
validationContext: "AvoidanceZones.AvoidanceZone"
}, callback);
}
/**
* DELETE a specified Avoidance Zone.
*
* @see {@link https://route4me.io/docs/#remove-an-avoidance-zone}
* @since 0.1.8
*
* @todo TODO: There is no schema for the response
* @example
* SampleResponse = {"status":true}
*
* @todo TODO: parse the response
*
* @param {string} id - Avoidance zone ID
* @param {module:route4me-node~RequestCallback<jsonschema:AvoidanceZones.RemoveResponse>}
* [callback]
*/
}, {
key: "remove",
value: function remove(id, callback) {
return this.r._makeRequest({
method: "DELETE",
path: "/api.v4/avoidance.php",
qs: {
"territory_id": id
},
validationContext: "AvoidanceZones.RemoveResponse"
}, callback);
}
}]);
return AvoidanceZones;
}();
module.exports = AvoidanceZones;