flower-power-api

2.0.1 • Public • Published

flower-power-api

NPM

A node.js module to interface with the cloud service for the Parrot Flower Power.

Get your access API

  • username password
  • client_id client_secret
    • Sign up to API here, and got by email your Access ID (client_id) and your Access secret (client_secret).

API

Install

$ npm install flower-power-api

Load

var FlowerPowerApi = require('flower-power-api');
var api = new FlowerPowerApi();

Login to cloud

var credential = {
    'username' : "...",
    'password' : "...",
    'client_id' : "...",
    'client_secret' : "...",
    'auto-refresh' : false
};
 
api.login(credential, function(err, res) {
    if (err) console.log(err);
    else {
        // Head in the clouds :)
    }
});

Get garden configuration (and specials methods)

api.getGarden(function(error, garden));

Communicate with Cloud

Every method have the sema pattern:

// For example:
'methodName': {method: 'GET/json', path: '/im/a/flower/', auth: true}
// Call like this:
api.methodName([data,] callback);
 
// 'data' is optional, 'callback' is required
data = {
    url: {}
    param1,
    param2,
    ...
}
callback = function(error, results);
// Find all methods in ./FlowerPowerCloud.js
var api = {
    // Profile
    'login': {method: 'POST/urlencoded', path: '/user/v2/authenticate', auth: false},
    'refresh': {method: 'POST/urlencoded', path: '/user/v2/authenticate', auth: false},
    'getProfile': {method: 'GET/json', path: '/user/v4/profile', auth: true},
    'getUserVersions': {method: 'GET/json', path: '/user/v1/versions', auth: true},
 
    // Garden
    'getSyncGarden': {method: 'GET/json', path: '/sensor_data/v4/garden_locations_status', auth: true},
    'sendSamples': {method: 'PUT/json', path: '/sensor_data/v5/sample', auth: true},
    'getSyncData': {method: 'GET/json', path: '/sensor_data/v3/sync', auth: true},
    'getFirmwareUpdate': {method: 'GET/json', path: '/sensor_data/v1/firmware_update', auth: true},
    'getLocationSamples': {method: 'GET/json', path: '/sensor_data/v2/sample/location/:location_identifier', auth: true},
    'getStatistics': {method: 'GET/json', path: '/sensor_data/v1/statistics/:location_identifier', auth: true},
 
    // Images
    'getImageLocation': {method: 'GET/json', path: '/image/v3/location/user_images/:location_identifier', auth: true},
};
 

Param in url

// Api which need parameters into url
'anExample': {method: 'GET/json', path: '/:this/is/an/:example'}
 
api.anExample({
    url: {
        this: 'flower',
        example: 'organ'
    },
    param1: '...',
    param2: '...'
}, callback);
 
// Become
'/flower/is/an/organ'

Finally

Enjoy!

Readme

Keywords

Package Sidebar

Install

npm i flower-power-api

Weekly Downloads

3

Version

2.0.1

License

ISC

Last publish

Collaborators

  • bsautron