add count to list of valid qs params (#109)
authorCarlos Santana <csantana23@gmail.com>
Fri, 23 Mar 2018 11:40:32 +0000 (04:40 -0700)
committerJames Thomas <jthomas.uk@gmail.com>
Fri, 23 Mar 2018 11:40:32 +0000 (13:40 +0200)
* add count to list of valid qs params

* update readme with count

* add tests for count query param

* Update README.md

README.md
lib/actions.js
lib/activations.js
lib/packages.js
lib/rules.js
lib/triggers.js
test/unit/actions.test.js
test/unit/activations.test.js
test/unit/packages.test.js
test/unit/rules.test.js
test/unit/triggers.test.js

index d11110d..3ce22fe 100644 (file)
--- a/README.md
+++ b/README.md
@@ -229,12 +229,17 @@ ow.namespaces.list()
 ow.packages.list()
 ```
 
-Query parameters for the API calls are supported (e.g. limit, skip, etc.) by passing an object with the named parameters as the first argument.
+Query parameters for the API calls are supported (e.g. limit, skip, count etc.) by passing an object with the named parameters as the first argument.
 
 ```javascript
 ow.actions.list({skip: 100, limit: 50})
 ```
 
+To count the number of resources without retrieving the resources you can use `count` query parameter.
+```javascript
+ow.actions.list({count:true})
+```
+
 The following optional parameters are supported:
 - `namespace` - set custom namespace for endpoint
 
index c76ff15..77a1a57 100644 (file)
@@ -16,7 +16,7 @@ class Actions extends Resources {
 
   list (options) {
     options = options || {}
-    options.qs = this.qs(options, ['skip', 'limit'])
+    options.qs = this.qs(options, ['skip', 'limit', 'count'])
 
     return super.list(options)
   }
index 2358262..9cd3fe1 100644 (file)
@@ -10,7 +10,7 @@ class Activations extends BaseOperation {
   list (options) {
     options = options || {}
     const namespace = this.namespace(options)
-    options.qs = this.qs(options || {}, ['name', 'skip', 'limit', 'upto', 'docs', 'since'])
+    options.qs = this.qs(options || {}, ['name', 'skip', 'limit', 'upto', 'docs', 'since', 'count'])
     return this.client.request('GET', `namespaces/${namespace}/activations`, options)
   }
 
index aaeaec2..27391b6 100644 (file)
@@ -14,7 +14,7 @@ class Packages extends Resources {
 
   list (options) {
     options = options || {}
-    options.qs = this.qs(options, ['skip', 'limit', 'public'])
+    options.qs = this.qs(options, ['skip', 'limit', 'public', 'count'])
 
     return super.list(options)
   }
index 1606cba..4d09291 100644 (file)
@@ -16,7 +16,7 @@ class Rules extends Resources {
 
   list (options) {
     options = options || {}
-    options.qs = this.qs(options, ['skip', 'limit'])
+    options.qs = this.qs(options, ['skip', 'limit', 'count'])
 
     return super.list(options)
   }
index a0a88c0..f12d58b 100644 (file)
@@ -14,7 +14,7 @@ class Triggers extends Resources {
 
   list (options) {
     options = options || {}
-    options.qs = this.qs(options, ['skip', 'limit'])
+    options.qs = this.qs(options, ['skip', 'limit', 'count'])
 
     return super.list(options)
   }
index 715639a..b1b552a 100644 (file)
@@ -35,6 +35,20 @@ test('should list all actions with parameters', t => {
   return actions.list({namespace: 'custom', skip: 100, limit: 100})
 })
 
+test('should list all actions with parameter count', t => {
+  t.plan(3)
+  const client = {}
+  const actions = new Actions(client)
+
+  client.request = (method, path, options) => {
+    t.is(method, 'GET')
+    t.is(path, `namespaces/custom/actions`)
+    t.deepEqual(options.qs, {count: true})
+  }
+
+  return actions.list({namespace: 'custom', count: true})
+})
+
 test('should retrieve action from identifier', t => {
   t.plan(2)
   const ns = '_'
index d9607b5..0d6e31d 100644 (file)
@@ -35,6 +35,20 @@ test('list all activations', t => {
   return activations.list({namespace: 'options_namespace', name: 'Hello', limit: 100, skip: 100, since: 100, upto: 100, docs: true})
 })
 
+test('list all activations with count parameter', t => {
+  t.plan(3)
+  const client = {}
+  const activations = new Activations(client)
+
+  client.request = (method, path, options) => {
+    t.is(method, 'GET')
+    t.is(path, `namespaces/options_namespace/activations`)
+    t.deepEqual(options.qs, {name: 'Hello', count: true})
+  }
+
+  return activations.list({namespace: 'options_namespace', name: 'Hello', count: true})
+})
+
 test('should retrieve an activation', t => {
   t.plan(2)
   const ns = '_'
index 8fcb2fc..e02558e 100644 (file)
@@ -35,6 +35,20 @@ test('should list all packages with parameters', t => {
   return packages.list({namespace: 'custom', skip: 100, limit: 100})
 })
 
+test('should list all packages with parameter count', t => {
+  t.plan(3)
+  const client = {}
+  const packages = new Packages(client)
+
+  client.request = (method, path, options) => {
+    t.is(method, 'GET')
+    t.is(path, `namespaces/custom/packages`)
+    t.deepEqual(options.qs, {count: true})
+  }
+
+  return packages.list({namespace: 'custom', count: true})
+})
+
 test('should retrieve package from string identifier', t => {
   t.plan(2)
   const ns = '_'
index d1365c1..b2b8265 100644 (file)
@@ -35,6 +35,20 @@ test('should list all rules with parameters', t => {
   return rules.list({namespace: 'custom', skip: 100, limit: 100})
 })
 
+test('should list all rules with parameter count', t => {
+  t.plan(3)
+  const client = { options: {} }
+  const rules = new Rules(client)
+
+  client.request = (method, path, options) => {
+    t.is(method, 'GET')
+    t.is(path, `namespaces/custom/rules`)
+    t.deepEqual(options.qs, {count: true})
+  }
+
+  return rules.list({namespace: 'custom', count: true})
+})
+
 test('should retrieve rule from identifier', t => {
   t.plan(2)
   const ns = '_'
index 81e3933..d855727 100644 (file)
@@ -36,6 +36,21 @@ test('should list all triggers with parameters', t => {
   return triggers.list({namespace: 'custom', skip: 100, limit: 100})
 })
 
+test('should list all triggers with parameter count', t => {
+  t.plan(3)
+  const ns = '_'
+  const client = {}
+  const triggers = new Triggers(client)
+
+  client.request = (method, path, options) => {
+    t.is(method, 'GET')
+    t.is(path, `namespaces/custom/triggers`)
+    t.deepEqual(options.qs, {count: true})
+  }
+
+  return triggers.list({namespace: 'custom', count: true})
+})
+
 test('should retrieve trigger from identifier', t => {
   t.plan(2)
   const ns = '_'