diff --git a/doc/7/controllers/collection/delete/index.md b/doc/7/controllers/collection/delete/index.md new file mode 100644 index 000000000..3cfa16394 --- /dev/null +++ b/doc/7/controllers/collection/delete/index.md @@ -0,0 +1,32 @@ +--- +code: true +type: page +title: delete +description: Deletes a collection +--- + +# delete + +Deletes a collection. + +
+ +```js +delete(index, collection); +``` + +
+ +| Arguments | Type | Description | +| ------------ | ----------------- | --------------- | +| `index` |
string
| Index name | +| `collection` |
string
| Collection name | + + +## Resolves + +Resolves if the collection is successfully deleted. + +## Usage + +<<< ./snippets/delete-specifications.js diff --git a/doc/7/controllers/collection/delete/snippets/delete-specifications.js b/doc/7/controllers/collection/delete/snippets/delete-specifications.js new file mode 100644 index 000000000..5dc6b5fd9 --- /dev/null +++ b/doc/7/controllers/collection/delete/snippets/delete-specifications.js @@ -0,0 +1,7 @@ +try { + await kuzzle.collection.delete('nyc-open-data', 'yellow-taxi'); + + console.log('Success'); +} catch (error) { + console.error(error.message); +} diff --git a/doc/7/controllers/collection/delete/snippets/delete-specifications.test.yml b/doc/7/controllers/collection/delete/snippets/delete-specifications.test.yml new file mode 100644 index 000000000..69c1d5c18 --- /dev/null +++ b/doc/7/controllers/collection/delete/snippets/delete-specifications.test.yml @@ -0,0 +1,7 @@ +name: collection#delete +description: Delete a collection +hooks: + before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi + after: +template: default +expected: Success diff --git a/src/controllers/Collection.js b/src/controllers/Collection.js index c3ed130de..498d5b2c9 100644 --- a/src/controllers/Collection.js +++ b/src/controllers/Collection.js @@ -146,6 +146,16 @@ class CollectionController extends BaseController { }, options) .then(response => response.result); } + + delete (index, collection) { + const request = { + index, + collection, + action: 'delete' + }; + return this.query(request) + .then(() => undefined); + } } module.exports = CollectionController; diff --git a/src/controllers/Index.js b/src/controllers/Index.js index b073d03ea..e1870034a 100644 --- a/src/controllers/Index.js +++ b/src/controllers/Index.js @@ -49,7 +49,6 @@ class IndexController extends BaseController { indexes } }; - return this.query(request, options) .then(response => response.result.deleted); } diff --git a/test/controllers/collection.test.js b/test/controllers/collection.test.js index 8d33ba0fa..aecf6c318 100644 --- a/test/controllers/collection.test.js +++ b/test/controllers/collection.test.js @@ -403,4 +403,22 @@ describe('Collection Controller', () => { }); }); }); + + describe('delete', () => { + it('should call collection/delete query and return a promise which resolves an acknowledgement', () => { + kuzzle.query.resolves({result: {acknowledged: true}}); + return kuzzle.collection.delete('index', 'collection') + .then(res => { + should(kuzzle.query) + .be.calledOnce() + .be.calledWith({ + controller: 'collection', + action: 'delete', + index: 'index', + collection: 'collection', + }); + should(res).be.undefined(); + }); + }); + }); });