Skip to content

Commit

Permalink
fix(params) fixed meth parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
joaolpinho committed Jul 29, 2016
1 parent 7df4f80 commit 9d45b50
Show file tree
Hide file tree
Showing 4 changed files with 302 additions and 191 deletions.
179 changes: 95 additions & 84 deletions lib/couchbasedb.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,11 @@ CouchBaseDB.prototype.initConnection = function (host, password, adminPort, apiP

};

CouchBaseDB.prototype.upsert = function (bucketName, docName, newDoc, resultCallback, options) {
CouchBaseDB.prototype.upsert = function (bucketName, docName, newDoc, options, resultCallback) {

if (!options || options && options.constructor !== Object) {
options = {
retrieve: !!options
};
if (resultCallback === void 0) {
resultCallback = options;
options = {};
}

async.waterfall([
Expand Down Expand Up @@ -94,6 +93,12 @@ CouchBaseDB.prototype.get = internals.get = function (bucketName, docName, optio
};

CouchBaseDB.prototype.getAndLock = internals.getAndLock = function (bucketName, docName, options, resultCallback) {

if (resultCallback === void 0) {
resultCallback = options;
options = {};
}

async.waterfall([
function (callback) {
internals.getBucket(bucketName, callback);
Expand All @@ -120,12 +125,11 @@ CouchBaseDB.prototype.getN1qlQuery = internals.getN1qlQuery = function (bucketNa
});
};

CouchBaseDB.prototype.insert = function (bucketName, docName, doc, resultCallback, options) {
CouchBaseDB.prototype.insert = function (bucketName, docName, doc, options, resultCallback) {

if (!options || options && options.constructor !== Object) {
options = {
retrieve: !!options
};
if (resultCallback === void 0) {
resultCallback = options;
options = {};
}

async.waterfall([
Expand All @@ -144,31 +148,29 @@ CouchBaseDB.prototype.insert = function (bucketName, docName, doc, resultCallbac
});
};

CouchBaseDB.prototype.insertWithIndexingViews = function (bucketName, docName, doc, resultCallback, options /*, views*/) {
CouchBaseDB.prototype.insertWithIndexingViews = function (bucketName, docName, doc, views, options, resultCallback) {
var _query = this.query;

if (!options || options && options.constructor !== Object) {
options = {
retrieve: !!options,
views: arguments[5]
};
if (resultCallback === void 0) {
resultCallback = options;
options = {};
}
options.views = options.views || options; // compatibility with older signature


async.waterfall([
function (callback) {
internals.getBucket(bucketName, callback);
},
function (bucket, callback) {
bucket.insert(docName, doc, callback);
bucket.insert(docName, doc, options, callback);
},
function (data, callback) {
if (options.views) {
if (views) {
var arr = [];

if (Array.isArray(options.views)) {
for (var i = 0; i < options.views.length; i++) {
var view = options.views[i];
if (Array.isArray(views)) {
for (var i = 0; i < views.length; i++) {
var view = views[i];
var obj = function (cl) {
view.options = view.options || {};
_.defaultsDeep(view.options, internals.viewQueryOptions);
Expand All @@ -180,17 +182,15 @@ CouchBaseDB.prototype.insertWithIndexingViews = function (bucketName, docName, d
}
else {
var obj = function (cl) {
options.views.options = options.views.options || {};
_.defaultsDeep(options.views.options, internals.viewQueryOptions);
options.views.options.stale = couchbase.ViewQuery.Update.BEFORE;
_query(options.views.bucketName, options.views.design, options.views.viewQuery, cl, options.views.options)
views.options = views.options || {};
_.defaultsDeep(views.options, internals.viewQueryOptions);
views.options.stale = couchbase.ViewQuery.Update.BEFORE;
_query(views.bucketName, views.design, views.viewQuery, cl, views.options)
};
arr.push(obj);
}

async.parallel(arr, function (err, results) {
callback(err, results);
});
async.parallel(arr, callback);

} else {
callback(null, data);
Expand All @@ -207,42 +207,44 @@ CouchBaseDB.prototype.insertWithIndexingViews = function (bucketName, docName, d
};


CouchBaseDB.prototype.remove = function (bucketName, docName, resultCallback) {
CouchBaseDB.prototype.remove = function (bucketName, docName, options, resultCallback) {

if (resultCallback === void 0) {
resultCallback = options;
options = {};
}

async.waterfall([
function (callback) {
internals.getBucket(bucketName, callback);
},
function (bucket, callback) {
bucket.remove(docName, callback);
bucket.remove(docName, options, callback);
}
], function (err, results) {
resultCallback(err, results);
});
], resultCallback);
};

CouchBaseDB.prototype.removeWithIndexingViews = function (bucketName, docName, resultCallback, options) {
CouchBaseDB.prototype.removeWithIndexingViews = function (bucketName, docName, views, options, resultCallback) {
var _query = this.query;

if (!options || options && options.constructor !== Object) {
options = {
views: []
};
if (resultCallback === void 0) {
resultCallback = options;
options = {};
}
options.views = options.views || options; // compatibility with old

async.waterfall([
function (callback) {
internals.getBucket(bucketName, callback);
},
function (bucket, callback) {
bucket.remove(docName, callback);
bucket.remove(docName, options, callback);
},
function (data, callback) {
if (options.views) {
if (views) {
var arr = [];
if (Array.isArray(options.views)) {
for (var i = 0; i < options.views.length; i++) {
var view = options.views[i];
if (Array.isArray(views)) {
for (var i = 0; i < views.length; i++) {
var view = views[i];
var obj = function (cl) {
view.options = view.options || {};
_.defaultsDeep(view.options, internals.viewQueryOptions);
Expand All @@ -254,34 +256,29 @@ CouchBaseDB.prototype.removeWithIndexingViews = function (bucketName, docName, r
}
else {
var obj = function (cl) {
options.views.options = options.views.options || {};
_.defaultsDeep(options.views.options, internals.viewQueryOptions);
options.views.options.stale = couchbase.ViewQuery.Update.BEFORE;
_query(options.views.bucketName, options.views.design, options.views.viewQuery, cl, options.views.options)
views.options = views.options || {};
_.defaultsDeep(views.options, internals.viewQueryOptions);
views.options.stale = couchbase.ViewQuery.Update.BEFORE;
_query(views.bucketName, views.design, views.viewQuery, cl, views.options)
};
arr.push(obj);
}

async.parallel(arr, function (err, results) {
callback(err, results);
});
async.parallel(arr, callback);

} else {
callback(null, data);
}

}
], function (err, results) {
resultCallback(err, results);
});
], resultCallback);
};

CouchBaseDB.prototype.update = function (bucketName, docName, newDoc, resultCallback, options) {
CouchBaseDB.prototype.update = function (bucketName, docName, newDoc, options, resultCallback) {

if (!options || options && options.constructor !== Object) {
options = {
retrieve: !!options
};
if (resultCallback === void 0) {
resultCallback = options;
options = {};
}

async.waterfall([
Expand All @@ -300,19 +297,16 @@ CouchBaseDB.prototype.update = function (bucketName, docName, newDoc, resultCall
});
};

CouchBaseDB.prototype.updateWithIndexingViews = function (bucketName, docName, newDoc, resultCallback, options/*, views*/) {
CouchBaseDB.prototype.updateWithIndexingViews = function (bucketName, docName, newDoc, views, options, resultCallback ) {

var

_query = this.query;

if (!options || options && options.constructor !== Object) {
options = {
retrieve: !!options,
views: arguments[5]
};
if (resultCallback === void 0) {
resultCallback = options;
options = {};
}
options.views = options.views || views; // compatibility with older signature


async.waterfall([
function (callback) {
Expand All @@ -322,11 +316,11 @@ CouchBaseDB.prototype.updateWithIndexingViews = function (bucketName, docName, n
bucket.replace(docName, newDoc, options, callback);
},
function (data, callback) {
if (options.views) {
if (views) {
var arr = [];
if (Array.isArray(options.views)) {
for (var i = 0; i < options.views.length; i++) {
var view = options.views[i];
if (Array.isArray(views)) {
for (var i = 0; i < views.length; i++) {
var view = views[i];
var obj = function (cl) {
view.options = view.options || {};
_.defaultsDeep(view.options, internals.viewQueryOptions);
Expand All @@ -338,17 +332,15 @@ CouchBaseDB.prototype.updateWithIndexingViews = function (bucketName, docName, n
}
else {
var obj = function (cl) {
options.views.options = options.views.options || {};
_.defaultsDeep(options.views.options, internals.viewQueryOptions);
options.views.options.stale = couchbase.ViewQuery.Update.BEFORE;
_query(options.views.bucketName, options.views.design, options.views.viewQuery, cl, options.views.options)
views.options = views.options || {};
_.defaultsDeep(views.options, internals.viewQueryOptions);
views.options.stale = couchbase.ViewQuery.Update.BEFORE;
_query(views.bucketName, views.design, views.viewQuery, cl, views.options)
};
arr.push(obj);
}

async.parallel(arr, function (err, results) {
callback(err, results);
});
async.parallel(arr, callback);

} else {
callback(null, data);
Expand All @@ -357,7 +349,7 @@ CouchBaseDB.prototype.updateWithIndexingViews = function (bucketName, docName, n
}
], function (err, results) {
if (options.retrieve) {
internals.get(bucketName, docName, resultCallback);
internals.get(bucketName, docName, options, resultCallback);
} else {
resultCallback(err, results);
}
Expand Down Expand Up @@ -388,7 +380,6 @@ CouchBaseDB.prototype.unlock = function unlock(bucketName, docName, cas, options
callback = options;
options = {};
}
options = options || {};

async.waterfall([
function (callback) {
Expand All @@ -402,7 +393,13 @@ CouchBaseDB.prototype.unlock = function unlock(bucketName, docName, cas, options
});
};

function getMulti(bucketName, keys, resultCallback) {
function getMulti(bucketName, keys, options, resultCallback) {

if (resultCallback === void 0) {
resultCallback = options;
options = {};
}

if (!keys || keys.length === 0) {
resultCallback(null, []);
} else {
Expand All @@ -425,10 +422,24 @@ function getMulti(bucketName, keys, resultCallback) {
CouchBaseDB.prototype.getMulti = getMulti;


function query(bucketName, design, viewQuery, resultCallback, options, populate) {
function query(bucketName, design, viewQuery, options, resultCallback) { /*bucketName, design, viewQuery, resultCallback, options, populate*/

if ( typeof resultCallback === 'object' ) {
const _tmp = resultCallback;
_tmp.populate = arguments[5];

resultCallback = options;
options = _tmp;
}

if (resultCallback === void 0) {
resultCallback = options;
options = {};
}

try {
var _options = _.pick(_.defaults(options || internals.viewQueryOptions, internals.viewQueryOptions), _.keys(internals.viewQueryOptions));
var _populate = populate || false;
var _populate = options.populate || false;
var _getMulti = this.getMulti;

async.waterfall([
Expand Down
Loading

0 comments on commit 9d45b50

Please sign in to comment.