/node-sonar-api

Node.js client for the Sonar REST API

Primary LanguageJavaScript

Node.js client for the Sonar REST API

NOTE: I am no longer working on any projects related to Sonar Software. I've updated links to Sonar's new 2.0 API that utilizes GRAPHQL.

npm version

NPM

Node client for the sonar.software API alt text

Sonar has moved on to version 2.0: 📖 sonar.software GRAPHQL 2.0 API

(Early release of the package only includes "getAll" and "get" requests! Plans for later releases will include "create", "delete", and "update" requests to the API)

  • 0.2.7 fixes path generation for parameters that require arrays

Installation

Using npm:

npm install node-sonar-api

Usage

Require the package:

const sonar = require('node-sonar-api');

Create the sonar client:

let client = sonar.createClient({
    sonarHost: "example.sonar.software",
    sonarUsername: "sonarUser",
    sonarPassword: "sonarPassword"
});

Now make requests to the Sonar API!

Examples (.getAll)

The below examples are all for "getAll" requests.

Using promises:

client.getAll.accounts()
    .then(json => console.log(json));

Specifying parameters with an object:

client.getAll.accounts({
    limit: 5,
    page: 2
})
    .then(json => console.log(json));

Using a callback:

client.getAll.accounts(json => {
    console.log(json);
});

Specifying parameters with an object:

client.getAll.accounts({ limit: 5, page: 2 }, json => {
    console.log(json);
});

Specifying an ID:

client.getAll.account.contacts(23673)
    .then(json => console.log(json));

Specifying entity type:

client.getAll.notes('accounts', 23673)
    .then(json => console.log(json));

Examples (.get)

The below examples are all for "get" requests.

All requests with "get" require an identifier.

Using promises:

client.get.Account(1)
    .then(json => console.log(json));

Properties of an entity are accessed by lowercase:

client.get.account.address(1, 63)
    .then(json => console.log(json));

Using a callback:

client.get.Account(1, json => {
    console.log(json);
});

Specifying entity type:

client.get.task('accounts', 1, 203)
    .then(json => console.log(json));

Examples (.update) [Only for /api/v1/accounts/]

The below examples are "update" requests for /api/v1/accounts/...

All requests with "update" require an identifier.

Using promises:

client.update.Account(1, {
    name: 'New Name Test'
})
    .then(json => console.log(json));

Properties of an entity are accessed by lowercase:

client.update.account.address(1, 63, {
    line1: 'AT%26T Center Parkway',
    city: 'San Antontio',
    state: 'TX',
    county: 'Bexar Co.',
    zip: '78219',
    country: 'US'
})
    .then(json => console.log(json));

📖 URL Encoding Special Character References

Using a callback:

client.update.Account(1, { 
    name: 'New Name Test' 
}, json => {
    console.log(json);
});

Notice

"update" functionality only implemented for the /api/v1/accounts/... portion of the API. This is for testing purposes as testing with the 'PATCH' requests are limited. If any problems are encountered while using the "update" functionality, please open an issue.

Documentation

📖 sonar.software REST API Sonar has moved on to version 2.0: 📖 sonar.software GRAPHQL 2.0 API

I am no longer working on any projects related to Sonar Software. Feel free to fork this project.