From 2c43a97f7e40cf0cbce70d2a4e027503f6d6a198 Mon Sep 17 00:00:00 2001 From: Anatoliy Chakkaev <anatoliy.chakkaev@flatsoft.com> Date: Sat, 10 Mar 2012 16:07:59 +0400 Subject: [PATCH] Removed sequelize adapter --- .travis.yml | 1 - lib/adapters/sequelize.js | 220 -------------------------------------- package.json | 2 +- 3 files changed, 1 insertion(+), 222 deletions(-) delete mode 100644 lib/adapters/sequelize.js diff --git a/.travis.yml b/.travis.yml index 2cd8be7f..7eb1eb01 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,3 @@ before_script: - "mysql -e 'create database myapp_test;'" - "psql -c 'create database myapp_test;' -U postgres" - mongo mydb_test --eval 'db.addUser("travis", "test");' - - which neo4j && neo4j start && sleep 5 diff --git a/lib/adapters/sequelize.js b/lib/adapters/sequelize.js deleted file mode 100644 index 41d8aef6..00000000 --- a/lib/adapters/sequelize.js +++ /dev/null @@ -1,220 +0,0 @@ -var safeRequire = require('../utils').safeRequire; - -var Sequelize = safeRequire('sequelize'); - -exports.initialize = function initializeSchema(schema, callback) { - if (!Sequelize) return; - - schema.adapter = new SequelizeAdapter(schema); - process.nextTick(callback); -}; - -function SequelizeAdapter(schema) { - this.schema = schema; - this._models = {}; - this._modelDefinitions = {}; - this._modelSettings = {}; - this.client = new Sequelize( - schema.settings.database, - schema.settings.username, - schema.settings.password, { - host: schema.settings.host, - port: schema.settings.port, - logging: schema.settings.port, - maxConcurrentQueries: schema.settings.maxConcurrentQueries - } - ); -} - -SequelizeAdapter.prototype.define = function (d) { - var model = d.model; - var settings = d.settings; - var properties = d.properties; - var m = model.modelName; - var translate = { - 'String': Sequelize.STRING, - 'Text': Sequelize.TEXT, - 'Number': Sequelize.INTEGER, - 'Boolean': Sequelize.BOOLEAN, - 'Date': Sequelize.DATE - }; - - var props = {}; - - Object.keys(properties).forEach(function (property) { - props[property] = translate[properties[property].type.name]; - }); - - this._modelDefinitions[m] = props; - this._modelSettings[m] = settings; -}; - -SequelizeAdapter.prototype.defineSequelizeModel = function (m) { - this._models[m] = this.client.define(m, this._modelDefinitions[m], this._modelSettings[m]); -}; - -SequelizeAdapter.prototype.defineForeignKey = function (model, key, cb) { - this._modelDefinitions[model][key] = {type: Sequelize.INTEGER, index: true}; - cb(null, Number); -}; - - -SequelizeAdapter.prototype.model = function getModel(name) { - return this._models[name]; -}; - -SequelizeAdapter.prototype.cleanup = function (model, obj) { - if (!obj) { - return null; - } - var def = this._modelDefinitions[model]; - var data = {}; - Object.keys(def).concat(['id']).forEach(function (key) { - data[key] = obj[key]; - }); - return data; -}; - -SequelizeAdapter.prototype.save = function (model, data, callback) { - this.model(model).find(data.id) - .on('success', function (record) { - record.updateAttributes(data) - .on('success', callback.bind(data, null)) - .on('failure', callback); - }) - .on('failure', callback); - -}; - -SequelizeAdapter.prototype.updateAttributes = function (model, id, data, callback) { - data.id = id; - this.save(model, data, callback); -}; - -SequelizeAdapter.prototype.create = function (model, data, callback) { - this.model(model) - .build(data) - .save() - .on('success', function (obj) { - callback(null, obj.id); - }) - .on('failure', callback); -}; - -SequelizeAdapter.prototype.freezeSchema = function () { - Object.keys(this._modelDefinitions).forEach(function (m) { - this.defineSequelizeModel(m); - }.bind(this)); -}; - -SequelizeAdapter.prototype.automigrate = function (cb) { - this.client.sync({force: true}) - .on('success', cb.bind(this, null)) - .on('failure', cb); -}; - -SequelizeAdapter.prototype.exists = function (model, id, callback) { - this.model(model) - .find(id) - .on('success', function (data) { - if (callback) { - callback.calledOnce = true; - callback(null, data); - } - }) - .on('failure', co(callback)); -}; - -function co(cb, args) { - - return function () { - if (!cb.calledOnce) { - cb.calledOnce = true; - cb.call.apply(cb, args || []); - } - } -} - -SequelizeAdapter.prototype.find = function find(model, id, callback) { - this.model(model) - .find(id) - .on('success', function (data) { - callback(null, this.cleanup(model, data)); - }.bind(this)) - .on('failure', callback); -}; - -SequelizeAdapter.prototype.destroy = function destroy(model, id, callback) { - this.model(model) - .find(id) - .on('success', function (data) { - data.destroy() - .on('success', callback.bind(null, null)) - .on('failure', callback); - }.bind(this)) - .on('failure', callback); -}; - -SequelizeAdapter.prototype.all = function all(model, filter, callback) { - this.model(model).all.on('success', function (data) { - // TODO: filter - callback(null, filter ? data.filter(applyFilter(filter)) : data); - }).on('failure', callback); -}; - -function applyFilter(filter) { - if (typeof filter.where === 'function') { - return filter.where; - } - var keys = Object.keys(filter.where || {}); - return function (obj) { - var pass = true; - keys.forEach(function (key) { - if (!test(filter.where[key], obj[key])) { - pass = false; - } - }); - return pass; - } - - function test(example, value) { - if (typeof value === 'string' && example && example.constructor.name === 'RegExp') { - return value.match(example); - } - // not strict equality - return example == value; - } -} - -SequelizeAdapter.prototype.destroyAll = function destroyAll(model, callback) { - var wait; - this.model(model) - .all - .on('success', function (data) { - wait = data.length; - data.forEach(function (obj) { - obj.destroy() - .on('success', done) - .on('false', error) - }); - }.bind(this)) - .on('failure', callback); - - var err = null; - function done() { - if (--wait === 0) callback(err); - } - function error(e) { - err = e; - if (--wait === 0) callback(err); - } -}; - -SequelizeAdapter.prototype.count = function count(model, callback) { - this.model(model).count() - .on('success', function (c) { - if (callback) callback(null, c); - }) - .on('failure', callback); -}; - diff --git a/package.json b/package.json index 14f6fb9a..e1c71340 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "main": "index.js", "scripts": { - "test": "EXCEPT=sequelize nodeunit test/*_test*" + "test": "EXCEPT=neo4j nodeunit test/*_test*" }, "engines": [ "node >= 0.4.0"