-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUser.js
59 lines (49 loc) · 1.7 KB
/
User.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
User = function(){};
require('./mysql_connect');
dbConn = new DbConn();
User.prototype.findOrCreate = function(data, done){
if(data.openId){
var openId = dbConn.mysql.escape(data.openId);
var findUserQuery = "SELECT * FROM user WHERE openId = " + openId;
dbConn.query(findUserQuery, function(rows){
authOrCreate(rows, data.provider, openId, data.userInfo, done);
} );
}
};
User.prototype.findById = function(id, done){
var userId = dbConn.mysql.escape(id);
var findUserQuery = "SELECT * FROM user WHERE id = " + userId;
console.log(findUserQuery);
dbConn.query(findUserQuery, function(rows){
if(rows.length>0)
done(null, rows[0]);
else
done("Couldn't find user", null);
} );
};
function authOrCreate(rows, provider, openId, userInfo, done){
if(rows.length < 1)
{
var user = new Object;
user.providerName = dbConn.mysql.escape(provider);
user.displayName = dbConn.mysql.escape(userInfo.displayName);
user.familyName = dbConn.mysql.escape(userInfo.name.familyName);
user.givenName = dbConn.mysql.escape(userInfo.name.givenName);
user.middleName = dbConn.mysql.escape(userInfo.name.middleName);
user.email = userInfo.emails.length < 1 ? dbConn.mysql.escape(emails[0].value) : "NULL";
var insertUserQuery = "INSERT INTO user "+
"VALUES(NULL, "+user.providerName+", "+openId+", NULL, NULL, NULL, "+user.displayName+","+user.familyName+", "+user.givenName+","+user.middleName+","+user.email+" )";
console.log(insertUserQuery);
dbConn.query(insertUserQuery, function(result){
console.log("inserted...");
var id = result.insertId;
var error = null;
done(error, userInfo);
} );
}else
{
console.log("the user is back...!");
done(null, rows[0]);
}
}
exports = User;