From 609952e8512fce7fba844aab2aa8602cb0e9be8e Mon Sep 17 00:00:00 2001 From: taimoorali736 Date: Fri, 17 Nov 2017 10:32:05 +0500 Subject: [PATCH 1/2] Removed the return statements from destroy methods. --- src/auditz.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/auditz.js b/src/auditz.js index 7a2bbc4..63cd241 100644 --- a/src/auditz.js +++ b/src/auditz.js @@ -324,7 +324,7 @@ export default (Model, bootOptions = {}) => { callback = where; query = {}; } - return Model.updateAll(query, { ...scrubbed }, {delete: true}) + Model.updateAll(query, { ...scrubbed }, {delete: true}) .then(result => (typeof callback === 'function') ? callback(null, result) : result) .catch(error => (typeof callback === 'function') ? callback(error) : Promise.reject(error)); }; @@ -339,7 +339,7 @@ export default (Model, bootOptions = {}) => { newOpt.remoteCtx = opt.remoteCtx; } - return Model.updateAll({ [idName]: id }, { ...scrubbed}, newOpt) + Model.updateAll({ [idName]: id }, { ...scrubbed}, newOpt) .then(result => (typeof callback === 'function') ? callback(null, result) : result) .catch(error => (typeof callback === 'function') ? callback(error) : Promise.reject(error)); }; @@ -350,7 +350,7 @@ export default (Model, bootOptions = {}) => { Model.prototype.destroy = function softDestroy(opt, cb) { const callback = (cb === undefined && typeof opt === 'function') ? opt : cb; - return this.updateAttributes({ ...scrubbed }, {delete: true}) + this.updateAttributes({ ...scrubbed }, {delete: true}) .then(result => (typeof cb === 'function') ? callback(null, result) : result) .catch(error => (typeof cb === 'function') ? callback(error) : Promise.reject(error)); }; From 2fdd7491f7c4e093c71fda28bf10f77e45f75f08 Mon Sep 17 00:00:00 2001 From: taimoorali736 Date: Fri, 8 Dec 2017 14:21:09 +0500 Subject: [PATCH 2/2] Added support for callback and promise in destroy methods --- README.md | 2 +- src/auditz.js | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8511ee7..8e28be4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Travis CI Build Status NPM version NPM downloads -Coverage Status +Coveralls Coverage Status Dependency Status Dev Dependency Status diff --git a/src/auditz.js b/src/auditz.js index 63cd241..8c01b49 100644 --- a/src/auditz.js +++ b/src/auditz.js @@ -1,5 +1,5 @@ import _debug from './debug'; - +import loopackUtils from 'loopback/lib/utils'; const debug = _debug(); const warn = (options, ...rest) => { if (!options.silenceWarnings) { @@ -319,40 +319,44 @@ export default (Model, bootOptions = {}) => { if (options.softDelete) { Model.destroyAll = function softDestroyAll(where, cb) { let query = where || {}; - let callback = cb; + let callback = cb || loopackUtils.createPromiseCallback(); if (typeof where === 'function') { callback = where; query = {}; } Model.updateAll(query, { ...scrubbed }, {delete: true}) - .then(result => (typeof callback === 'function') ? callback(null, result) : result) - .catch(error => (typeof callback === 'function') ? callback(error) : Promise.reject(error)); + .then(result => callback(null, result)) + .catch(error => callback(error)); + return callback.promise; }; Model.remove = Model.destroyAll; Model.deleteAll = Model.destroyAll; Model.destroyById = function softDestroyById(id, opt, cb) { - const callback = (cb === undefined && typeof opt === 'function') ? opt : cb; + let callback = (cb === undefined && typeof opt === 'function') ? opt : cb; + callback = callback || loopackUtils.createPromiseCallback(); let newOpt = {delete: true}; if (typeof opt === 'object') { newOpt.remoteCtx = opt.remoteCtx; } Model.updateAll({ [idName]: id }, { ...scrubbed}, newOpt) - .then(result => (typeof callback === 'function') ? callback(null, result) : result) - .catch(error => (typeof callback === 'function') ? callback(error) : Promise.reject(error)); + .then(result => callback(null, result)) + .catch(error => callback(error)); + return callback.promise; }; Model.removeById = Model.destroyById; Model.deleteById = Model.destroyById; Model.prototype.destroy = function softDestroy(opt, cb) { - const callback = (cb === undefined && typeof opt === 'function') ? opt : cb; - + let callback = (cb === undefined && typeof opt === 'function') ? opt : cb; + callback = callback || loopackUtils.createPromiseCallback(); this.updateAttributes({ ...scrubbed }, {delete: true}) - .then(result => (typeof cb === 'function') ? callback(null, result) : result) - .catch(error => (typeof cb === 'function') ? callback(error) : Promise.reject(error)); + .then(result => callback(null, result)) + .catch(error => callback(error)); + return callback.promise; }; Model.prototype.remove = Model.prototype.destroy;