UNPKG

poseidon-cassandra

Version:

A future wrapper around the node-cassandra-cql driver using Poseidon

344 lines 11.6 kB
var Promise = require('bluebird'); var Driver = require('./driver'); function Keyspace(Driver, connectionName) { this.connectionName = connectionName; this.instance = Driver.openConnection(connectionName); return; } Keyspace.prototype.batch = function () { var args = arguments; var deferred = Promise.pending(); this.instance.catch(function (err) { deferred.reject(err); return deferred.promise; }).then(function (instanceValue) { var callback = function () { if (arguments[0]) { if (arguments.length === 1 || arguments[1] == null) { deferred.reject(arguments[0]); } else { deferred.reject(Array.prototype.slice.call(arguments, 0)); } } else { switch (arguments.length) { case 0: deferred.resolve(); break; case 2: deferred.resolve(arguments[1]); break; case 3: deferred.resolve([ arguments[1], arguments[2] ]); break; case 4: deferred.resolve([ arguments[1], arguments[2], arguments[3] ]); break; case 5: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4] ]); break; case 6: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ]); break; default: deferred.resolve(Array.prototype.slice.call(null, arguments, 1)); break; } } }; switch (args.length) { case 0: instanceValue.batch(callback); break; case 1: instanceValue.batch(args[0], callback); break; case 2: instanceValue.batch(args[0], args[1], callback); break; case 3: instanceValue.batch(args[0], args[1], args[2], callback); break; case 4: instanceValue.batch(args[0], args[1], args[2], args[3], callback); break; case 5: instanceValue.batch(args[0], args[1], args[2], args[3], args[4], callback); break; default: instanceValue.batch.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback)); break; } }); return deferred.promise; }; Keyspace.prototype.eachRow = function () { var args = arguments; var deferred = Promise.pending(); this.instance.catch(function (err) { deferred.reject(err); return deferred.promise; }).then(function (instanceValue) { var callback = function () { if (arguments[0]) { if (arguments.length === 1 || arguments[1] == null) { deferred.reject(arguments[0]); } else { deferred.reject(Array.prototype.slice.call(arguments, 0)); } } else { switch (arguments.length) { case 0: deferred.resolve(); break; case 2: deferred.resolve(arguments[1]); break; case 3: deferred.resolve([ arguments[1], arguments[2] ]); break; case 4: deferred.resolve([ arguments[1], arguments[2], arguments[3] ]); break; case 5: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4] ]); break; case 6: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ]); break; default: deferred.resolve(Array.prototype.slice.call(null, arguments, 1)); break; } } }; switch (args.length) { case 0: instanceValue.eachRow(callback); break; case 1: instanceValue.eachRow(args[0], callback); break; case 2: instanceValue.eachRow(args[0], args[1], callback); break; case 3: instanceValue.eachRow(args[0], args[1], args[2], callback); break; case 4: instanceValue.eachRow(args[0], args[1], args[2], args[3], callback); break; case 5: instanceValue.eachRow(args[0], args[1], args[2], args[3], args[4], callback); break; default: instanceValue.eachRow.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback)); break; } }); return deferred.promise; }; Keyspace.prototype.execute = function () { var args = arguments; var deferred = Promise.pending(); this.instance.catch(function (err) { deferred.reject(err); return deferred.promise; }).then(function (instanceValue) { var callback = function () { if (arguments[0]) { if (arguments.length === 1 || arguments[1] == null) { deferred.reject(arguments[0]); } else { deferred.reject(Array.prototype.slice.call(arguments, 0)); } } else { switch (arguments.length) { case 0: deferred.resolve(); break; case 2: deferred.resolve(arguments[1]); break; case 3: deferred.resolve([ arguments[1], arguments[2] ]); break; case 4: deferred.resolve([ arguments[1], arguments[2], arguments[3] ]); break; case 5: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4] ]); break; case 6: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ]); break; default: deferred.resolve(Array.prototype.slice.call(null, arguments, 1)); break; } } }; switch (args.length) { case 0: instanceValue.execute(callback); break; case 1: instanceValue.execute(args[0], callback); break; case 2: instanceValue.execute(args[0], args[1], callback); break; case 3: instanceValue.execute(args[0], args[1], args[2], callback); break; case 4: instanceValue.execute(args[0], args[1], args[2], args[3], callback); break; case 5: instanceValue.execute(args[0], args[1], args[2], args[3], args[4], callback); break; default: instanceValue.execute.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback)); break; } }); return deferred.promise; }; Keyspace.prototype.stream = function () { var args = arguments; var deferred = Promise.pending(); this.instance.catch(function (err) { deferred.reject(err); return deferred.promise; }).then(function (instanceValue) { var callback = function () { if (arguments[0]) { if (arguments.length === 1 || arguments[1] == null) { deferred.reject(arguments[0]); } else { deferred.reject(Array.prototype.slice.call(arguments, 0)); } } else { switch (arguments.length) { case 0: deferred.resolve(); break; case 2: deferred.resolve(arguments[1]); break; case 3: deferred.resolve([ arguments[1], arguments[2] ]); break; case 4: deferred.resolve([ arguments[1], arguments[2], arguments[3] ]); break; case 5: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4] ]); break; case 6: deferred.resolve([ arguments[1], arguments[2], arguments[3], arguments[4], arguments[5] ]); break; default: deferred.resolve(Array.prototype.slice.call(null, arguments, 1)); break; } } }; switch (args.length) { case 0: instanceValue.stream(callback); break; case 1: instanceValue.stream(args[0], callback); break; case 2: instanceValue.stream(args[0], args[1], callback); break; case 3: instanceValue.stream(args[0], args[1], args[2], callback); break; case 4: instanceValue.stream(args[0], args[1], args[2], args[3], callback); break; case 5: instanceValue.stream(args[0], args[1], args[2], args[3], args[4], callback); break; default: instanceValue.stream.apply(instanceValue, Array.prototype.slice.call(null, args).concat(callback)); break; } }); return deferred.promise; }; module.exports = Keyspace;