//\r
function ProfileCollection()\r
{\r
- var MySQLPool = new require("./mysql_pool.js");\r
var murmurhash = require("murmurhash");\r
- var pool = new MySQLPool({\r
- host : config.db_host,\r
- user : config.db_user,\r
- password : config.db_password,\r
- port : config.db_port,\r
- database : config.db_name,\r
- });\r
+ var Profile = require("./init").GetProfileColletion;\r
this.AuthAsync = function(name,password,cb){\r
async.waterfall([\r
function(next){\r
- pool.query("SELECT password FROM profilelist WHERE name_hash = ? and name = ?",[murmurhash.v3(name),name],next);\r
+ Profile.find({name_hash:murmurhash.v3(name), name:name}).done(next);\r
},\r
function(result,next){\r
- if(result[0].password == md5_hex(password))\r
+ if(result.password == md5_hex(password))\r
next(null,true);\r
else\r
next(null,false);\r
],cb);\r
}\r
this.GetAsync = function(name,cb){\r
- pool.query("SELECT * FROM profilelist WHERE name_hash = ? and name = ?",[murmurhash.v3(name),name],cb);\r
+ Profile.find({name_hash:murmurhash.v3(name), name:name}).done(cb);\r
}\r
this.AddAsync = function(data,cb){\r
- var item = GetItem(data);;\r
- pool.query("INSERT INTO profilelist SET ?",[item],cb);\r
+ newProfile = Profile.build(GetItem(data));\r
+ newProfile.save().done(cb);\r
}\r
this.UpdatAsync = function(name,data,cb){\r
- var item = GetItem(data);\r
- pool.query("UPDATE profilelist SET ? WHERE name_hash = ? and name = ?",[item,murmurhash.v3(name),name],cb);\r
+ Profile.update(GetItem(data),{name_hash:murmurhash.v3(name), name:name}).done(cb);\r
}\r
this.ClearAsync = function(cb){\r
- pool.query("TRUNCATE TABLE profilelist",null,cb);\r
+ Profile.drop().done(cb);\r
}\r
this.RemoveRangeAsync = function(names,cb){\r
- pool.query("DELETE FROM profilelist WHERE name IN (?)",[names],cb);\r
+ Profile.destroy({where:{\r
+ in:[names]\r
+ }\r
+ }).done(cb);\r
}\r
this.RemoveAsync = function(name,cb){\r
- pool.query("DELETE FROM profilelist WHERE name_hash = ? and name = ?",[murmurhash.v3(name),name],cb);\r
+ Profile.destroy({name_hash:murmurhash.v3(name), name:name}).done(cb);\r
}\r
this.FindByNameAsync = function(pattern,start,count,cb){\r
- pool.query("SELECT * FROM profilelist WHERE name LIKE ? LIMIT ?,?",[pattern+"%",start,count],cb);\r
+ Profile.findAll({\r
+ offset:start,\r
+ limit:count,\r
+ where:{\r
+ like:pattern\r
+ }\r
+ }).done(cb);\r
}\r
this.ToArrayAsync = function(start,count,cb){\r
- pool.query("SELECT name,lastmodified FROM profilelist LIMIT ?,?",[start,count],cb);\r
+ Profile.findAll({offset:start,limit:count}).done(cb);\r
}\r
\r
var crypto = require("crypto");\r