Skip to content

Instantly share code, notes, and snippets.

@sauceaaron
Last active November 30, 2017 00:05
Show Gist options
  • Save sauceaaron/34dda38c559dbd6d813247b0bf912ce0 to your computer and use it in GitHub Desktop.
Save sauceaaron/34dda38c559dbd6d813247b0bf912ce0 to your computer and use it in GitHub Desktop.
Use the TestObject API to check for available private devices

##install dependencies:

npm install request-promise

##set environment variable:

export TESTOBJECT_USERNAME=your_username
export TESTOBJECT_API_KEY=your_api_key

##run:

node testobject_available_private_devices.js
var request = require('request-promise'); // npm install request-promise
var options = {
auth: {
username: process.env.TESTOBJECT_USERNAME, // export TESTOBJECT_USERNAME=<your username>
password: process.env.TESTOBJECT_API_KEY // export TESTOBJECT_API_KEY=<your api key>
},
json: true
};
request = request.defaults(options);
var all_devices_url = "https://app.testobject.com/api/rest/v2/devices";
var available_devices_url = "https://app.testobject.com/api/rest/v2/devices/available";
request(all_devices_url).then(function (data)
{
var privateDevices = data.US.filter( (device) => { return device.isPrivate } );
// console.log("-----all private devices-----");
// console.log(privateDevices);
request(available_devices_url).then(function(data)
{
var availableDevices = data.US;
// console.log("-----all available devices-----");
// console.log(availableDevices);
var devicesInUse = [];
var devicesAvailable = [];
for (device of privateDevices)
{
if (availableDevices.includes(device.id))
{
console.log(device.id + " is available");
devicesAvailable.push(device);
}
else
{
console.log(device.id + " is in use");
devicesInUse.push(device);
}
}
console.log("------available private devices----");
console.log(devicesAvailable);
console.log("------in use private devices----");
console.log(devicesInUse);
})
.catch(function(error)
{
console.error(error);
});
})
.catch(function (error)
{
console.error(error);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment