nforce-tooling
Version:
Force.com Tooling API plugin for nforce
85 lines (75 loc) • 2.35 kB
JavaScript
var nforce = require('nforce'),
tooling = require('nforce-tooling')(nforce);
var sfuser = process.env.SFUSER;
var sfpass = process.env.SFPASS;
var org = nforce.createConnection({
clientId: process.env.CLIENTID,
clientSecret: process.env.CLIENTSECRET,
redirectUri: 'http://localhost:3000/oauth/_callback',
mode: 'single',
plugins: ['tooling']
});
org.authenticate({ username: sfuser, password: sfpass}, function(err, resp){
if(!err) {
describe();
objects();
object();
query();
createAndDeleteRecord();
} else {
console.log('Error connecting to Salesforce: ' + err.message);
}
});
function createAndDeleteRecord() {
org.tooling.insert({type: 'MetadataContainer', object: {name: 'ExampleContainer'}}, function(err, record) {
console.log('==== Creating MetadataContainer Record ====');
if (err) console.log(err);
if (!err) {
console.log(record);
// now delete the record
org.tooling.delete({type: 'MetadataContainer', id: record.id}, function(err, resp) {
console.log('==== Deleting MetadataContainer Record ====');
if (err) console.log(err);
if (!err) console.log(resp);
});
}
});
}
function query() {
var q = 'SELECT Id, Name FROM ApexClass Limit 10';
org.tooling.query({q: q}, function(err, resp) {
console.log('==== Here are some Apex Classes for your enjoyment. ====');
if (err) console.log(err);
if (!err) {
for(var obj in resp.records) {
console.log(resp.records[obj].Id + " -- " + resp.records[obj].Name);
}
}
});
}
function object() {
org.tooling.getObject({type: 'ApexClass'}, function(err, resp) {
console.log('==== Get Object -- ApexClass ====');
if (err) console.log(err);
if (!err) console.log(resp);
});
}
function objects() {
org.tooling.getObjects(function(err, resp) {
console.log('==== All Objects ====');
if (err) console.log(err);
if (!err) {
for(var obj in resp.sobjects) {
console.log(resp.sobjects[obj].name);
console.log(resp.sobjects[obj].urls);
}
}
});
}
function describe() {
org.tooling.getDescribe({type: 'ApexClass'}, function(err, resp) {
console.log('==== Describe ApexClass ====');
if (err) console.log(err);
if (!err) console.log(resp);
});
}