route4me-nodejs-sdk
Version:
Access Route4Me's logistics-as-a-service API using our Node.js SDK
98 lines (90 loc) • 2.44 kB
JavaScript
/**
* AutomaticTerritories facility
*
* @category AutomaticTerritories
* @since 1.0.16
*/
class AutomaticTerritories {
/**
* Constructor
*
* @private
*
* @param {RequestManager} requestManager - Request Manager
* @return {AutomaticTerritories} - AutomaticTerritories facility
*/
constructor(requestManager) {
this.r = requestManager
}
/**
* Create job.
*
* @since 1.0.16
*
* @param {Object[]} addresses - An array of the address objects.
* @param {String} addresses.id - Address ID.
* @param {Number} addresses.lat - Address latitude.
* @param {Number} addresses.lng - Address longitude.
* @param {Number} [mode = 0]
* @param {String[]} [params = []] - An array of parameters.
* @param {module:route4me-node~RequestCallback<jsonschema:
* AutomaticTerritories.JobID>} callback
*/
createJob(addresses, mode, params, callback) {
let md = mode || 0
let prm = params || []
let cb = callback
if (undefined === cb && "function" === typeof prm) {
cb = prm
prm = []
}
if (undefined === cb && "function" === typeof md) {
cb = md
md = 0
}
return this.r._makeRequest5({
method: "POST",
path: "/api/v5.0/automatic-territories",
body: {
addresses,
mode: md,
params: prm
},
validationContext: "AutomaticTerritories.JobID",
}, cb)
}
/**
* Check the asynchronous job status by specifying the 'job_id' path parameter.
*
* @since 1.0.16
*
* @param {String} jobId - Job ID to check status.
* @param {module:route4me-node~RequestCallback<jsonschema:
* AutomaticTerritories.ResponseStatus>} callback
*/
getJobStatus(jobId, callback) {
return this.r._makeRequest5({
method: "GET",
path: `/api/v5.0/automatic-territories/job-tracker/status/${jobId}`,
validationContext: "AutomaticTerritories.ResponseStatus",
}, callback)
}
/**
* Get the asynchronous job result by specifying the 'job_id' path parameter.
*
* @since 1.0.16
*
* @param {String} jobId - Job ID to get result.
* @param {module:route4me-node~RequestCallback<jsonschema:
* AutomaticTerritories.ResponseJob>} callback
*/
getJobResult(jobId, callback) {
return this.r._makeRequest5({
method: "GET",
path: `/api/v5.0/automatic-territories/job-tracker/result/${jobId}`,
validationContext: "AutomaticTerritories.ResponseJob",
}, callback)
}
}
module.exports = AutomaticTerritories