不要怂,就是干,撸起袖子干!

Commit 7fc980f8 by Sascha Depold

pass the callee to sequelize.query will return it on success and failure

1 parent 0eb59cbc
......@@ -21,10 +21,10 @@ ModelDefinition.prototype.sync = function(options) {
var self = this
var doQuery = function() {
var query = QueryGenerator.createTableQuery(self.tableName, self.attributes)
self.modelManager.sequelize.query(query)
.on('success', function() { self.emit('success') })
.on('failure', function() { self.emit('failure') })
self.modelManager.sequelize
.query(QueryGenerator.createTableQuery(self.tableName, self.attributes), self)
.on('success', function() { self.emit('success', self) })
.on('failure', function() { self.emit('failure', self) })
}
if(options.force) this.drop.on('success', function() { doQuery() })
......@@ -35,7 +35,7 @@ ModelDefinition.prototype.sync = function(options) {
ModelDefinition.prototype.__defineGetter__('drop', function() {
var query = QueryGenerator.dropTableQuery(this.tableName)
return this.modelManager.sequelize.query(query)
return this.modelManager.sequelize.query(query, this)
})
ModelDefinition.prototype.build = function(values) {
......
......@@ -29,16 +29,16 @@ Model.prototype.addAttribute = function(attribute, value) {
Model.prototype.__defineGetter__('save', function() {
if(this.isNewRecord) {
var query = QueryGenerator.insertQuery(this.definition.tableName, this.values)
return this.definition.modelManager.sequelize.query(query)
return this.definition.modelManager.sequelize.query(query, this)
} else {
var query = QueryGenerate.updateQuery(this.definition.tableName, this.values, this.id)
return this.definition.modelManager.sequelize.query(query)
return this.definition.modelManager.sequelize.query(query, this)
}
})
Model.prototype.__defineGetter__('destroy', function() {
var query = QueryGenerate.deleteQuery(this.definition.tableName, this.id)
return this.definition.modelManager.sequelize.query(query)
return this.definition.modelManager.sequelize.query(query, this)
})
Model.prototype.__defineGetter__('isNewRecord', function() {
......
var Utils = require("./utils")
var Query = module.exports = function(databaseConfig) {
var Query = module.exports = function(databaseConfig, callee) {
this.config = databaseConfig
this.callee = callee
}
Utils.addEventEmitter(Query)
......@@ -17,8 +18,8 @@ Query.prototype.run = function(query) {
console.log('Executing: ' + query)
client.connect()
client.query(query, function() { self.emit('success') })
client.on("error", function(err) { self.emit('failure', err) })
client.query(query, function() { self.emit('success', self.callee) })
client.on("error", function(err) { self.emit('failure', err, self.callee) })
client.end()
return this
......
......@@ -26,8 +26,8 @@ var instanceMethods = {
return model
},
query: function(sql, callback) {
return new Query(this.config).run(sql)
query: function(sql, callee) {
return new Query(this.config, callee).run(sql)
}
}
......
......@@ -9,8 +9,8 @@ var User = sequelize.define('User', {
User.sync({force: true}).on('success', function() {
var user = User.build({title: 'barfooz', bio: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'})
console.log(user)
user.save.on('success', function() {
user.save.on('success', function(u) {
console.log(u)
console.log('just saved the user :)')
})
})
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!