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

Commit 8d3e2253 by Sascha Depold

moved queries to a special method

1 parent 323c472d
...@@ -19,7 +19,30 @@ var classMethods = { ...@@ -19,7 +19,30 @@ var classMethods = {
switch(command) { switch(command) {
case 'create': case 'create':
query = "CREATE TABLE IF NOT EXISTS %{table} (%{fields})" query = "CREATE TABLE IF NOT EXISTS %{table} (%{fields})"
break; break
case 'drop':
query = "DROP TABLE IF EXISTS %{table}"
break
case 'select':
query = "SELECT %{fields} FROM %{table}"
if(values.where) query += " WHERE %{where}"
if(values.order) query += " ORDER BY %{order}"
if(values.group) query += " GROUP BY %{group}"
if(values.limit) {
if(values.offset) query += " LIMIT %{offset}, %{limit}"
else query += " LIMIT %{limit}"
}
values.fields = values.fields || "*"
break
case 'insert':
query = "INSERT INTO %{table} (%{fields}) VALUES (%{values})"
break
case 'update':
query = "UPDATE %{table} SET %{values} WHERE id = %{id}"
break
case 'delete':
query = "DELETE FROM %{table} WHERE id = %{id} LIMIT 1"
break
} }
return SequelizeHelper.evaluateTemplate(query, values) return SequelizeHelper.evaluateTemplate(query, values)
} }
......
...@@ -24,7 +24,6 @@ SequelizeHelper = { ...@@ -24,7 +24,6 @@ SequelizeHelper = {
}, },
transformValueByDataType: function(value, dataType) { transformValueByDataType: function(value, dataType) {
SequelizeHelper.log(Sequelize)
var result = null var result = null
switch(dataType) { switch(dataType) {
case Sequelize.INTEGER: case Sequelize.INTEGER:
......
...@@ -15,41 +15,44 @@ SequelizeTable = function(sequelize, tableName, attributes) { ...@@ -15,41 +15,44 @@ SequelizeTable = function(sequelize, tableName, attributes) {
sync: function(callback) { sync: function(callback) {
var fields = ["id INT NOT NULL auto_increment PRIMARY KEY"] var fields = ["id INT NOT NULL auto_increment PRIMARY KEY"]
SequelizeHelper.Hash.keys(attributes).forEach(function(name) { fields.push(name + " " + attributes[name]) }) SequelizeHelper.Hash.keys(attributes).forEach(function(name) { fields.push(name + " " + attributes[name]) })
var query = "CREATE TABLE IF NOT EXISTS " + tableName + " (" + fields.join(', ') + ")"
sequelize.query(query, function() { sequelize.query(
if(callback) callback(table) Sequelize.sqlQueryFor( 'create', { table: tableName, fields: fields.join(', ') } ),
}) function() { if(callback) callback(table) }
)
}, },
drop: function(callback) { drop: function(callback) {
var query = "DROP TABLE IF EXISTS " + tableName var query = "DROP TABLE IF EXISTS " + tableName
sequelize.query(query, function() { sequelize.query(
if(callback) callback(table) Sequelize.sqlQueryFor('drop', { table: tableName }),
}) function() { if(callback) callback(table) }
)
}, },
findAll: function(callback) { findAll: function(callback) {
var query = "SELECT * FROM " + tableName sequelize.query(
sequelize.query(query, function(result) { Sequelize.sqlQueryFor('select', { table: tableName }),
var objects = [] function(result) {
result.forEach(function(resultSet) { var objects = []
objects.push(table.sqlResultToObject(resultSet))
}) result.forEach(function(resultSet) {
objects.push(table.sqlResultToObject(resultSet))
})
if(callback) callback(objects) if(callback) callback(objects)
}) }
)
}, },
find: function(conditions, callback) { find: function(conditions, callback) {
var query = SequelizeHelper.evaluateTemplate( sequelize.query(
"SELECT * FROM %{table} WHERE %{conditions} ORDER BY id DESC LIMIT 1", Sequelize.sqlQueryFor('select', {
{ table: tableName, conditions: SequelizeHelper.SQL.hashToWhereConditions(conditions) } table: tableName, where: SequelizeHelper.SQL.hashToWhereConditions(conditions), order: 'id DESC', limit: 1
}), function(result) {
if (callback) callback(table.sqlResultToObject(result[0]))
}
) )
sequelize.query(query, function(result) {
if (callback) callback(table.sqlResultToObject(result[0]))
})
}, },
sqlResultToObject: function(result) { sqlResultToObject: function(result) {
...@@ -73,17 +76,12 @@ SequelizeTable = function(sequelize, tableName, attributes) { ...@@ -73,17 +76,12 @@ SequelizeTable = function(sequelize, tableName, attributes) {
save: function(callback) { save: function(callback) {
var query = null var query = null
var self = this var self = this
if(this.id == null) { if(this.id == null)
query = SequelizeHelper.evaluateTemplate( query = Sequelize.sqlQueryFor('insert', {
"INSERT INTO %{table} (%{fields}) VALUES (%{values})", table: this.tableName, fields: SequelizeHelper.SQL.fieldsForInsertQuery(this), values: SequelizeHelper.SQL.valuesForInsertQuery(this)
{ table: this.tableName, fields: SequelizeHelper.SQL.fieldsForInsertQuery(this), values: SequelizeHelper.SQL.valuesForInsertQuery(this) } })
) else
} else { query = Sequelize.sqlQueryFor('update', { table: this.tableName, values: SequelizeHelper.SQL.valuesForUpdate(this), id: this.id })
query = SequelizeHelper.evaluateTemplate(
"UPDATE %{table} SET %{values} WHERE id = %{id}",
{ table: this.tableName, values: SequelizeHelper.SQL.valuesForUpdate(this), id: this.id }
)
}
sequelize.query(query, function() { sequelize.query(query, function() {
if(self.id == null) { if(self.id == null) {
...@@ -108,7 +106,10 @@ SequelizeTable = function(sequelize, tableName, attributes) { ...@@ -108,7 +106,10 @@ SequelizeTable = function(sequelize, tableName, attributes) {
}, },
destroy: function(callback) { destroy: function(callback) {
sequelize.query(
Sequelize.sqlQueryFor('delete', { table: this.tableName, id: this.id }),
callback
)
} }
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!