Repository navigation
Expand file tree
/
Copy pathdatabase.js
More file actions
92 lines (85 loc) · 2.94 KB
/
Copy pathdatabase.js
File metadata and controls
92 lines (85 loc) · 2.94 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
var postgres = require('./postgres')("localhost", "postgres", "postgres", "root");
var fs = require('fs');
fs.readFile("sql/schema.sql", 'utf-8', function(err, data) {
if (err)
console.log("Error reading schema.sql");
postgres.exec(data);
});
module.exports = {
userById: function(id, callback) {
postgres.exec("SELECT * FROM \"Users\" WHERE \"id\" = " + id, function(err, result) {
if (!err)
callback();
else {
if (result.length == 0)
callback();
else
callback(result[0]);
}
})
},
addUser: function(name, password, callback) {
this.userByName(name, function(userExists) {
if (!userExists) {
postgres.exec("INSERT INTO \"User\" (\"Name\", \"Password\") VALUES(\'" + name + "\', \'" + password + "\');", function(err, result) {
if (!err)
callback(true);
else
callback(false);
});
} else
callback(false);
})
},
getNotes: function(name,callback) {
console.log(name);
this.userByName(name, function(user) {
console.log(name);
if (user != undefined) {
console.log("In user req");
postgres.exec("SELECT * FROM \"Note\" WHERE \"User\"= \'" + user.id + "\' AND \"Private\"= \'" + false + "\'" , function(err, result){
if (!err){
postgres.exec("SELECT * FROM \"Tag\" WHERE \"User\"= \'" + user.id + "\'" , function(err, result2){
callback(result, result2);
});
}
else
callback(false);
});
} else
callback(false);
})
},
userByName: function(name, callback) {
postgres.exec("SELECT * FROM \"User\" WHERE \"Name\"= \'" + name + "\'", function(err, result) {
if (err || result.length == 0)
callback(undefined);
else
callback(result[0]);
})
},
addNote: function(note, callback) {
this.userByName(note.author, function(user) {
var sql = "INSERT INTO \"Note\" (\"User\", \"Title\", \"Content\", \"Date\",\"Private\", \"Number\", \"Color\") VALUES" +
"(" + user.id + ", \'" + note.title + "\', \'" + note.text + "\', \'" + note.date + "\', "
+ !note.access + ", " + note.number + ", \'" + note.color + "\')";
console.log(note);
postgres.exec(sql, function(err, result) {
var newTags = note.labels.filter(
function(a) {
return result.map(
function(row) {
return row.Name;
}).indexOf(a) == -1;
});
var tags = newTags.map(function(name) { return "(\'" + name +"\')"; } );
for(var i = 0; i < tags.length; i++){
postgres.exec("INSERT INTO \"Tag\" (\"Note\", \"User\", \"TagName\") VALUES " + "(" + note.number + ", " + user.id + ", "
+ tags[i] + ")", function(err, res) {
})
}
callback(!err);
})
});
}
}