-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.js
More file actions
92 lines (84 loc) · 2.5 KB
/
db.js
File metadata and controls
92 lines (84 loc) · 2.5 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
const sqlite3 = require('sqlite3');
const User = require('./models/user');
class DB {
constructor(config) {
this.db = new sqlite3.Database(config.filename);
}
findUser(id, callback) {
this.db.get("SELECT id, email, hashpwd FROM users WHERE id = ?",
id,
(err, row) => {
if (err) {
console.error(err);
callback(err, null);
}
else if (row) {
let user = new User(row.id, row.email, row.hashpwd);
callback(null, user);
}
else {
callback(null, null);
}
});
}
findUserByEmail(email, callback) {
this.db.get("SELECT id, email, hashpwd FROM users WHERE email = ?",
email,
(err, row) => {
if (err) {
console.error(err);
callback(err, null);
}
else if (row) {
let user = new User(row.id, row.email, row.hashpwd);
callback(null, user);
}
else {
callback(null, null);
}
});
}
createUser(email, hashpwd, callback) {
this.db.run("INSERT INTO users (email, hashpwd) VALUES (?, ?)",
[email, hashpwd],
(err) => {
if (err) {
console.error(err);
callback(err, null);
}
else {
let id = this.lastID;
callback(null, new User(id, email, hashpwd));
}
});
}
recordGame(teamScore, messages) {
this.db.run(`INSERT INTO played_games (
team_score, time_finished, messages
) VALUES (?, datetime('now'), ?)`,
[teamScore, messages.join(',')],
(err) => {
if (err) {
console.error(err);
}
});
}
allAllowedWords(callback) {
this.db.all('SELECT DISTINCT word FROM allowed_words', (err, rows) => {
if (err) {
console.error(err);
callback(err, null);
}
else if (rows) {
callback(null, rows.map((row) => row.word));
}
else {
callback(null, null);
}
});
}
close() {
this.db.close();
}
}
module.exports = DB;