node-mysql-wrapper
Version:
This is a node js module, written in TypeScript (module is compiled to JavaScript), which manages mysql (node-mysql) connection and models in a way that you expected!
51 lines (50 loc) • 2.24 kB
JavaScript
var Promise = require('bluebird');
var DeleteQuery = (function () {
function DeleteQuery(_table) {
this._table = _table;
}
DeleteQuery.prototype.execute = function (criteriaOrID, callback) {
var _this = this;
return new Promise(function (resolve, reject) {
var primaryKeyValue = _this._table.getPrimaryKeyValue(criteriaOrID);
if (!primaryKeyValue || primaryKeyValue <= 0) {
var arr = _this._table.getRowAsArray(criteriaOrID);
var objectValues = arr[1];
var colummnsAndValues = [];
for (var i = 0; i < colummnsAndValues.length; i++) {
colummnsAndValues.push(colummnsAndValues[i] + "=" + _this._table.connection.escape(objectValues[i]));
}
if (colummnsAndValues.length === 0) {
reject('No criteria found in model! ');
}
var _query = "DELETE FROM " + _this._table.name + " WHERE " + colummnsAndValues.join(' AND ');
_this._table.connection.query(_query, function (err, result) {
if (err) {
reject(err);
}
var _objReturned = { affectedRows: result.affectedRows, table: _this._table.name };
resolve(_objReturned);
if (callback) {
callback(_objReturned);
}
});
}
else {
var _query = "DELETE FROM " + _this._table.name + " WHERE " + _this._table.primaryKey + " = " + primaryKeyValue;
_this._table.connection.query(_query, function (err, result) {
if (err) {
reject(err);
}
var _objReturned = { affectedRows: result.affectedRows, table: _this._table.name };
resolve(_objReturned);
if (callback) {
callback(_objReturned);
}
});
}
});
};
return DeleteQuery;
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = DeleteQuery;