solink-js
v1.0.32
Published
intermediary client for all HTTP requests to solink cloud hosted api
Readme
Solink API client
Node npm module to serve as an intermediary client for all calls to the Solink API
Installation
npm install solink-js --saveInstantiation
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' : '[email protected]',
'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 protected]', password: 'password'})
setPassword({email: '[email protected]', password: 'password'})
forgotPassword({email: '[email protected]', 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 bucketEach 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') } )