diff options
author | Ben Burwell <ben@benburwell.com> | 2016-01-12 18:17:30 -0500 |
---|---|---|
committer | Ben Burwell <ben@benburwell.com> | 2016-01-12 18:17:30 -0500 |
commit | ec7575f4dc3c52c7a5bb8b5f482f6a3664abfd2d (patch) | |
tree | b1753847741e4919acadc8ea59742a417283c626 | |
parent | 1a4a8c5e8dbb1e2d3b3da87e82cfe734537a503b (diff) |
Add support for alert_days and alert_minutes parameters
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | lib/clients/refresh.js | 10 | ||||
-rw-r--r-- | tests/active911.js | 25 |
3 files changed, 35 insertions, 4 deletions
@@ -32,7 +32,9 @@ The following public API methods are available: * `getAgency()` * `getDevice(device_id)` -* `getAlerts()` +* `getAlerts({ alert_days: 1, alert_minutes: 30 })`, where the object parameter + is optional. You should not use both keys; if `alert_minutes` is provided, it + will override `alert_days` as documented [on the wiki](http://wiki.active911.com/wiki/index.php/Accessing_the_API#Alerts). * `getDeviceAlerts(device_id)` * `getAlert(alert_id)` * `getLocations()` diff --git a/lib/clients/refresh.js b/lib/clients/refresh.js index 7b9fde7..a88d899 100644 --- a/lib/clients/refresh.js +++ b/lib/clients/refresh.js @@ -92,8 +92,14 @@ RefreshClient.prototype.getDevice = function(id) { return this._doRequest('/devices/' + id); }; -RefreshClient.prototype.getAlerts = function() { - return this._doRequest('/alerts'); +RefreshClient.prototype.getAlerts = function(options) { + var url = '/alerts'; + if (options && options.alert_minutes) { + url += '?alert_minutes=' + options.alert_minutes; + } else if (options && options.alert_days) { + url += '?alert_days=' + options.alert_days; + } + return this._doRequest(url); }; RefreshClient.prototype.getAlert = function(id) { diff --git a/tests/active911.js b/tests/active911.js index 0aa9ffa..de91f1c 100644 --- a/tests/active911.js +++ b/tests/active911.js @@ -17,7 +17,7 @@ var resourceResponse = require('./replies/resource.json'); var errorResponse = require('./replies/error.json'); var nockPath = function(path, response) { - nock('https://access.active911.com') + return nock('https://access.active911.com') .get('/interface/open_api/api' + path) .reply(200, response); }; @@ -136,3 +136,26 @@ describe('Active911 API', function() { }); }); }); + +describe('Alert filtering', function() { + it('should request alerts filtered by alert_days', function(done) { + var n = nockPath('/alerts?alert_days=1', alertsResponse); + client.getAlerts({ alert_days: 1}).then(function() { + n.isDone().should.be.true; + done(); + }).catch(function(err) { + false.should.be.true; + done(); + }); + }); + it('should request alerts filtered by alert_minutes', function(done) { + var n = nockPath('/alerts?alert_minutes=1', alertsResponse); + client.getAlerts({ alert_minutes: 1}).then(function() { + n.isDone().should.be.true; + done(); + }).catch(function(err) { + false.should.be.true; + done(); + }); + }); +}); |