diff --git a/lib/service.js b/lib/service.js index 299c2a022..6d88547a9 100644 --- a/lib/service.js +++ b/lib/service.js @@ -1704,22 +1704,29 @@ * @example * * var savedSearch = service.savedSearches().item("MySavedSearch"); - * savedSearch.history(function(err, jobs, search) { + * savedSearch.history({count: 10}, function(err, jobs, search) { * for(var i = 0; i < jobs.length; i++) { * console.log("Job", i, ":", jobs[i].sid); * } * }); * + * @param {Object} options Options for retrieving history. For a full list, see the Pagination and Filtering options in the REST API documentation. * @param {Function} callback A function to call when the history is retrieved: `(err, job, savedSearch)`. * * @endpoint saved/searches/{name}/history * @method splunkjs.Service.SavedSearch */ - history: function(callback) { + history: function(options, callback) { + if (!callback && utils.isFunction(options)) { + callback = options; + options = {}; + } + callback = callback || function() {}; + options = options || {}; var that = this; - return this.get("history", {}, function(err, response) { + return this.get("history", options, function(err, response) { if (err) { callback(err); return; @@ -5675,4 +5682,4 @@ }); } }); -})(); +})(); \ No newline at end of file diff --git a/tests/service_tests/savedsearch.js b/tests/service_tests/savedsearch.js index 5430806ed..9676e3a46 100644 --- a/tests/service_tests/savedsearch.js +++ b/tests/service_tests/savedsearch.js @@ -195,6 +195,47 @@ exports.setup = function (svc, loggedOutSvc) { done(); }) + it("Callback#history with pagination", function (done) { + var name = "jssdk_savedsearch_" + getNextId(); + var originalSearch = "search index=_internal | head 1"; + var searches = this.service.savedSearches({ owner: this.service.username, app: "sdkappcollection" }); + + Async.chain([ + function (done) { + searches.create({ search: originalSearch, name: name }, done); + }, + function (search, done) { + assert.ok(search); + search.dispatch(done); + }, + function (job, search, done) { + assert.ok(job); + assert.ok(search); + search.dispatch(done); + }, + function (job, search, done) { + assert.ok(job); + assert.ok(search); + + tutils.pollUntil( + job, () => job.properties()["isDone"], 10, Async.augment(done, search) + ); + }, + function (job, search, done) { + search.history({ count: 1 }, Async.augment(done, job)); + }, + function (jobs, search, originalJob, done) { + assert.ok(jobs.length > 0); + assert.equal(jobs.length, 1); + done(); + }], + function (err) { + assert.ok(!err); + done(); + } + ); + }); + it("Callback#history error", function (done) { var name = "jssdk_savedsearch_" + getNextId(); var originalSearch = "search index=_internal | head 1";