node-sonar-api

0.2.7 • Public • Published

Node.js client for the Sonar REST API

npm version

NPM

Node client for the sonar.software API alt text

(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

Package Sidebar

Install

npm i node-sonar-api

Weekly Downloads

7

Version

0.2.7

License

ISC

Unpacked Size

188 kB

Total Files

15

Last publish

Collaborators

  • gteklee