diff --git a/index.js b/index.js index 7261dcf80..fef5f889a 100644 --- a/index.js +++ b/index.js @@ -1,12 +1,16 @@ -const - Kuzzle = require('./src/Kuzzle'), - { - Http, - WebSocket - } = require('./src/protocols'), - BaseController = require('./src/controllers/base'), - KuzzleAbstractProtocol = require('./src/protocols/abstract/common'), - KuzzleEventEmitter = require('./src/eventEmitter'); +const Kuzzle = require('./src/Kuzzle'); +const { Http, WebSocket } = require('./src/protocols'); +const BaseController = require('./src/controllers/base'); +const KuzzleAbstractProtocol = require('./src/protocols/abstract/common'); +const KuzzleEventEmitter = require('./src/eventEmitter'); +const { + SearchResultBase, + DocumentSearchResult, + ProfileSearchResult, + RoleSearchResult, + SpecificationSearchResult, + UserSearchResult +} = require('./src/controllers/searchResult'); if (typeof window !== 'undefined' && typeof BUILT === 'undefined') { throw new Error('It looks like you are using the Nodejs version of Kuzzle SDK ' + @@ -21,5 +25,11 @@ module.exports = { WebSocket, BaseController, KuzzleAbstractProtocol, - KuzzleEventEmitter + KuzzleEventEmitter, + SearchResultBase, + DocumentSearchResult, + ProfileSearchResult, + RoleSearchResult, + SpecificationSearchResult, + UserSearchResult }; diff --git a/src/controllers/document.js b/src/controllers/document.js index 1ac3f9623..0f72aa74e 100644 --- a/src/controllers/document.js +++ b/src/controllers/document.js @@ -187,6 +187,13 @@ class DocumentController extends BaseController { } search (index, collection, body = {}, options = {}) { + return this._search(index, collection, body, options) + .then(({ response, request }) => ( + new DocumentSearchResult(this.kuzzle, request, options, response.result) + )); + } + + _search (index, collection, body = {}, options = {}) { const request = { index, collection, @@ -208,7 +215,7 @@ class DocumentController extends BaseController { } return this.query(request, options) - .then(response => new DocumentSearchResult(this.kuzzle, request, options, response.result)); + .then(response => ({ response, request })); } update (index, collection, _id, body, options = {}) { diff --git a/src/controllers/searchResult/index.js b/src/controllers/searchResult/index.js new file mode 100644 index 000000000..545b84d60 --- /dev/null +++ b/src/controllers/searchResult/index.js @@ -0,0 +1,15 @@ +const SearchResultBase = require('./base'); +const DocumentSearchResult = require('./document'); +const ProfileSearchResult = require('./profile'); +const RoleSearchResult = require('./role'); +const SpecificationSearchResult = require('./specifications'); +const UserSearchResult = require('./user'); + +module.exports = { + SearchResultBase, + DocumentSearchResult, + ProfileSearchResult, + RoleSearchResult, + SpecificationSearchResult, + UserSearchResult +}; \ No newline at end of file