-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlocalsql.js
More file actions
189 lines (173 loc) · 6.68 KB
/
localsql.js
File metadata and controls
189 lines (173 loc) · 6.68 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
//In here are all the implementations of the mysql functions used
//setup d8Wb1u$7
let mysql = require('mysql');
let con = mysql.createConnection({
host: "127.0.0.1",
user: "migue_server",
password: "Wepp801*",
database: "somethingbrawl"
});
//functions
function isEmpty(obj) {
// null and undefined are "empty"
if (obj == null) return true;
// Assume if it has a length property with a non-zero value
// that that property is correct.
if (obj.length && obj.length > 0) return false;
if (obj.length === 0) return true;
// Otherwise, does it have any properties of its own?
// Note that this doesn't handle
// toString and toValue enumeration bugs in IE < 9
for (let key in obj) {
if (hasOwnProperty.call(obj, key)) return false;
}
return true;
}
//method implementation
exports.GetCard = new Promise(function(resolve, reject){
let sql = "SELECT * FROM card";
con.query(sql, function (err, result, fields) {
if (err) reject(err);
resolve(result)
});
});
exports.GetPlayerStats = function (userid1, userid2){
return new Promise(function(resolve, reject){
let sql = "SELECT user_id, Char_Health, Char_Energy, Char_EnergyGrowth, Char_MaxEnergy FROM user WHERE user_id=" + mysql.escape(userid1) +
" UNION SELECT user_id, Char_Health, Char_Energy, Char_EnergyGrowth, Char_MaxEnergy FROM user WHERE user_id=" + mysql.escape(userid2);
con.query(sql, function (err, result, fields) {
if (err) reject(err); //server related issue
if (isEmpty(result)) reject(err); //user not found
resolve(result);
});
});
};
exports.GetPlayer = function(user,pass){
return new Promise(function(resolve, reject){
let sql = "SELECT user_id, user_username FROM user WHERE user_username=" + mysql.escape(user) + " AND user_pass=" + mysql.escape(pass);
con.query(sql, function (err, result, fields) {
if (err) reject(2); //server related issue
if (isEmpty(result)) reject(1); //user not found
resolve(result);
});
});
};
exports.RegisterPlayer = function(user,pass, cardslenght){
return new Promise(function(resolve,reject){
let sql = "SELECT * FROM user WHERE user_username=" + mysql.escape(user)
con.query(sql, function (err, result, fields) {
if (err){ reject(2); return;} //server related issue
if (!isEmpty(result)){ reject("username in use"); return;}
if (isEmpty(result)){
let sql = "INSERT INTO user (`user_username`, `user_pass`, `user_activedeck`, `Char_Health`, `Char_Energy`, `Char_EnergyGrowth`, `Char_MaxEnergy`) VALUES" +
"(" + mysql.escape(user) +
"," + mysql.escape(pass) +
",1" + //active deck (not implemented)
",50" + //health
",5" + //energy
",1" + //energy growth
",15)"; //max energy
con.query(sql, function (err, result) { //create the user
if (err) {reject(err); return;} //server related issue
if (isEmpty(result)) {reject("user not created"); return;}
console.log(result);
let sql = "INSERT INTO usercards (`userid`, `cardid`, `ownedammount`) VALUES ";
for(let i=1; i<cardslenght;i++){
sql += "(" + result.insertId +
"," + i +
",1), ";
}
sql = sql.substring(0, sql.length - 2); // cut out the aditional ,\blank
con.query(sql, function (err, result) { //give him some owned cards
if (err) reject(err);
resolve(result);
})
});
}
});
});
}
exports.SavePlayerDeck = function(cardlist, userid){
return new Promise(function(resolve, reject){
let sql = "DELETE FROM userdeck WHERE userid =" + mysql.escape(userid);
con.query(sql, function(err, result){
let sql = "INSERT INTO userdeck (`userid`, `deckid`, `cardid`) VALUES ";
const iMax= Object.keys(cardlist).length;
if (iMax== 0){ resolve("empty deck"); return;}
for(let i=0;i<iMax;i++){
sql += "(" + mysql.escape(userid) +
"," + 1 +
"," + mysql.escape(cardlist[i]) + "), ";
}
sql = sql.substring(0, sql.length - 2);
con.query(sql, function (err, result) {
if (err) reject(err);
resolve(result);
});
});
});
}
exports.GetPlayerDeck = function (userid){
return new Promise(function(resolve, reject){
let sql = "SELECT user_activedeck FROM user WHERE user_id=" + mysql.escape(userid);
con.query(sql, function(err, result, fields){
if (err) reject(err);
if (isEmpty(result)) reject("user not found");
let sql = "SELECT cardid FROM userdeck WHERE userid=" + mysql.escape(userid) + " AND deckid=" + mysql.escape(result[0].user_activedeck);
con.query(sql, function(err, result, fields){
if (err) {reject(err); return;}
if (isEmpty(result)) {reject("user deck not found"); return;}
const iMax = Object.keys(result).length;
let sql ="SELECT id, level, type, name, cost, description FROM card WHERE id = " + mysql.escape(result[0].cardid);
for(let i = 1;i<iMax;i++){
sql += " UNION SELECT id, level, type, name, cost, description FROM card WHERE id = " + mysql.escape(result[i].cardid);
}
con.query(sql, function(err, result, fields){
if (err) reject(err);
if (isEmpty(result)) reject("empty");
resolve(result);
});
});
});
});
}
exports.getPlayerOwnedCards = function(userid){
return new Promise(function(resolve,reject){
let sql= "SELECT C.id, C.level, C.type, C.name, C.cost, C.description, U.ownedammount from usercards U JOIN card C on U.cardid = C.id AND U.userid=" + mysql.escape(userid);
con.query(sql, function (err, result, fields) {
if (err) reject(err); //server related issue
if (isEmpty(result)) reject("empty");
resolve(result);
});
});
}
exports.rewardPlayer = function(userid, cardid){
return new Promise(function(resolve, reject){
let sql = "SELECT * FROM usercards WHERE userid=" + mysql.escape(userid) + " AND cardid=" + mysql.escape(cardid);
con.query(sql, function (err, result, fields) {
if (err) reject(err); //server related issue
if (isEmpty(result)){
console.log(result);
let sql = "INSERT INTO usercards (`userid`, `cardid`, `ownedammount`) VALUES" +
"(" + mysql.escape(userid) +
"," + mysql.escape(cardid) +
",1)";
con.query(sql, function (err, result) {
if (err) reject(err);
resolve(result);
});
return;
}
else{
console.log("adding repeated card" + result[0].cardid);
let ammount = result[0].ownedammount;
ammount ++;
var sql = "UPDATE usercards SET ownedammount =" + mysql.escape(ammount) + " WHERE userid=" + mysql.escape(userid) + " AND cardid=" + mysql.escape(cardid);
con.query(sql, function (err, result) {
if (err) reject(err);
resolve(result);
});
}
});
});
}