UNPKG

@incdevco/framework

Version:
99 lines (58 loc) 1.44 kB
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;