solink-js

1.0.32 • Public • Published

Solink API client

Node npm module to serve as an intermediary client for all calls to the Solink API

Installation

npm install solink-js --save

Instantiation

var SolinkAPI = require('solink-js'),
    url = 'http://localhost:8800' || 'https://api.solinkcloud.com',
    token = {
        "auth_token": "thisisthetoken",
          "aws": {
            "accessKeyId": "ACCESSKEYID",
            "secretAccessKey": "secret/Acce/ssKey",
            "sessionToken": "session+Token"
          }
        },
    credentials = { 
      'email' : 'irfanisawesome@email.com', 
      'password' : 'password'
    }
 
// URL defaults to cloud url
var api = new SolinkAPI(credentials[, url]) || new SolinkAPI(token[, url])

Usage

General usage:

api.endpoint.action(params)
    .then(function(res) {
        console.log('worked!')
    }, function(err) {
        console.log(err.statusCode)
    })

Supported endpoints & actions:

auth.
    login({email: 'email@email.com', password: 'password'})
    setPassword({email: 'email@email.com', password: 'password'})
    forgotPassword({email: 'email@email.com', newPassword: 'newPassword'})
    refresh(refreshToken, jwtToken)
   
events.
    find('event_id')
    find({offset: 1, count: 10, start: '1995-24-12T12:30:00'})
    create(ev) // event object
    histogram({date: '1995-24-12T12:30:00', range: 'day'})
    
filters.
    create(filter) // filter object
    find('filter_id')
    find({offset: 1, count: 3})
    update('filter_id', ufilter) // updated filter object
    delete('filter_id')
    
users.
    create(user) // user object
    find('user_id')
    find({offset: 1, count: 3})
    delete('id')
    
locations.
    find() // list nvr locations
    find(nvr_id) //locations/nvr_id
    tree(orgPath, depth) // orgpath format: 'Canada/Ontario/Kanata', depth: int
    cameras(camera_id).at(nvr_id)
    cameras({offset: 0, count: 1}).at(nvr_id)
 
images.
  get('image_path.png') // fetches image url in S3 bucket

Each function defined above returns a promise, error-handling is left upto the user, functions can therefore be chained/nested:

api.filters.create(filter)
  .then(function(res) {   console.log('created')  })
  .then(function() {
    api.filters.find(filter.id)
      .then(function(res) {   console.log('found')    })
      .then(function() {
        api.filters.update(filter.id, filter)
          .then(function(res) {   console.log('updated')  })
          .then(function() {
            api.filters.delete(filter.id)
              .then(function() {  console.log('deleted')  })
          })
      })
  })

Each promise will propogate any error if thrown from the platform. This can be caught and addressed as follows:

api.users.create(user)
    .then(function(res) {  } )
    .catch(function(err) { console.log('err, do something') } )

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.32
    0
    • latest

Version History

Package Sidebar

Install

npm i solink-js

Weekly Downloads

5

Version

1.0.32

License

ISC

Last publish

Collaborators

  • rdudani
  • solinkcorp