aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Burwell <github@benburwell.com>2016-01-12 18:27:54 -0500
committerBen Burwell <github@benburwell.com>2016-01-12 18:27:54 -0500
commit1afea8fece81d6311b40509bf51a853ae946764c (patch)
treeb1753847741e4919acadc8ea59742a417283c626
parent1a4a8c5e8dbb1e2d3b3da87e82cfe734537a503b (diff)
parentec7575f4dc3c52c7a5bb8b5f482f6a3664abfd2d (diff)
Merge pull request #4 from benburwell/alert-filteringv1.1.0
Add support for alert_days and alert_minutes parameters
-rw-r--r--README.md4
-rw-r--r--lib/clients/refresh.js10
-rw-r--r--tests/active911.js25
3 files changed, 35 insertions, 4 deletions
diff --git a/README.md b/README.md
index daf1041..972e716 100644
--- a/README.md
+++ b/README.md
@@ -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();
+ });
+ });
+});