-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexpress.js
149 lines (122 loc) · 4.26 KB
/
express.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
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
var express = require('express'),
app = express(),
port = process.env.PORT || 1337;
var neo4j = require("neo4j-driver");
neo4j = neo4j.v1;
var driver = neo4j.driver("bolt://csci-4409.morris.umn.edu:7687", neo4j.auth.basic("tempadmin", "dbfgnomes"));
var session = driver.session();
app.use(express.static(__dirname + '/public'));
app.get("/login", function(req, res) {
var email = req.query['email'];
var password = req.query['password'];
var flag = true;
session
.run("MATCH (n:user {email:'" + email + "'}) RETURN n")
.subscribe({
onNext: function(record) {
flag = false;
console.log(record);
if (record._fields[0].properties.password == password) {
res.status(200).send(email);
} else {
res.status(400).send("You entered your password INCORRECTLY!");
errorMessage = "You entered your password INCORRECTLY!";
}
},
onCompleted: function(record) {
if (flag) {
res.status(400).send("there is no profile with that email")
}
}
})
});
app.get("/signup", function(req, res) {
var email = req.query['email'];
var password = req.query['password'];
var passwordRepeat = req.query['passwordRepeat'];
var flag = true;
if (password != passwordRepeat) {
res.status(400).send("the passwords do not match");
} else {
session
.run("MATCH (n:user {email:'" + email + "'}) RETURN n")
.subscribe({
onNext: function(record) {
flag = false;
},
onCompleted: function(record) {
if (flag) {
session
.run("CREATE (n:user{email:'" + email + "', password:'" + password + "'})")
.subscribe({
onCompleted: function(n) {
res.status(200).send(email)
}
});
} else {
res.status(400).send("profile already exists with given email");
}
}
})
}
});
app.get("/profile", function(req, res) {
res.status(200).sendFile("/profile/profile.html", {
root: __dirname + '/public/'
});
});
app.get("/match", function(req, res) {
var firstname = req.query['firstname'];
var lastname = req.query['lastname'];
var gender = req.query['gender'];
var records = [];
session.run("MATCH (n:person {gender:'" + gender + "'}) WHERE n.firstName =~ '(?i)" + firstname + ".*' AND n.lastName =~ '(?i)" + lastname + ".*' RETURN n")
.subscribe({
onNext: function(record) {
records.push(record);
},
onCompleted: function(record) {
res.status(200).send(records);
}
})
});
app.get("/linkPerson", function(req, res) {
console.log("inside linkPerson in express")
var email = req.query['email'];
var firstname = req.query['firstname'];
var lastname = req.query['lastname'];
var gender = req.query['gender'];
var dob = req.query['dob'];
var flag = false;
console.log("inside appget linkPerson");
console.log(email, firstname, lastname, gender, dob);
// creating person node
session.run("MATCH (n:user {email:'" + email + "'})-[e]->(m:person) return e").subscribe({
onNext: function (record) {
flag = true;
},
onCompleted: function (record) {
if(!flag){
session.run("MERGE (n:user {email:'" + email + "'})-[:isPerson]->(m: person {firstName:'" + firstname + "', lastName:'" +
lastname + "', gender:'" + gender + "', birthDate:'" + dob + "'})").subscribe({
onCompleted: function () {
res.status(200).send();
}
})
}else {
res.status(418).send("You are already in the tree");
}
}
});
//session.run("MERGE (m:person {firstName:'" + firstname + "',lastName:'" + lastname + "',gender:'" + gender + "',birthDate:'" + dob + "'})")
//session.close();
//session.run("MATCH (n:user {email:'" + email + "'}), (m:person {firstName:'" + firstname + "', lastName:'" + lastname + "'}) MERGE (n)-[r:isUser]->(m)")
session.close();
});
app.get("/registeredProfile", function(req, res) {
console.log("inside registeredProfile in express")
res.status(200).sendFile("/profile/registeredProfile.html", {
root: __dirname + '/public/'
});
})
app.listen(port);