@incdevco/framework
Version:
node.js lambda framework
99 lines (58 loc) • 1.44 kB
JavaScript
var Sql = require('../sql');
function Transaction(connection) {
'use strict';
this.connection = connection;
}
Transaction.prototype.commit = function (passthrough) {
'use strict';
var self = this;
return this.connection.query('COMMIT')
.then(function () {
self.connection.release();
return passthrough;
});
};
Transaction.prototype.delete = function () {
'use strict';
return new Sql.Delete({
connection: this
});
};
Transaction.prototype.insert = function (data) {
'use strict';
var query = new Sql.Insert({
connection: this
});
query.insert(data);
return query;
};
Transaction.prototype.query = function (sql, inserts) {
'use strict';
return this.connection.query(sql, inserts);
};
Transaction.prototype.select = function (expression) {
'use strict';
var query = new Sql.Select({
connection: this
});
query.select(expression);
return query;
};
Transaction.prototype.update = function (table) {
'use strict';
var query = new Sql.Update({
connection: this
});
query.update(table);
return query;
};
Transaction.prototype.rollback = function (exception) {
'use strict';
var self = this;
return this.connection.query('ROLLBACK')
.then(function () {
self.connection.release();
throw exception;
});
};
module.exports = Transaction;