-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paths.js
executable file
·186 lines (163 loc) · 6.03 KB
/
s.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
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
//PRS Showdown
//Authors: Sadi Gulcelik, Ayesha Ali
//Date: 1/18/19
//required packages
var express = require('express');
var fs = require('fs');
var favicon = require('serve-favicon');
var app = express();
var Developer = require(__dirname + '/models/Developer');
var dat = require(__dirname + '/models/Data');
var dev = require(__dirname + '/models/Developer');
var methodOverride = require('method-override');
var Promise = require('promise');
var {
promisify
} = require('util')
app.use(methodOverride('_method'));
//set up server
app.use(express.static('public'));
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(favicon(__dirname + '/public/images/logo.png'));
app.use(express.urlencoded());
//variables for login and villain strategies
var error = false;
var indexError;
var port = process.env.PORT || 3042;
app.listen(port, function () {
//dataJS.log('Server started at '+ new Date()+', on port ' + port+'!');
});
//shows home page aka signup page
app.get('/', function (request, response) {
console.log("GET request: /");
response.status(200);
response.setHeader('Content-Type', 'text/html')
response.render('sign_up', {
data: {
message: "welcome"
}
});
});
app.get('/d', function (request, response) {
a = dat.out2().then(function (a) {
console.log("done")
response.send(JSON.stringify(a))
});
});
app.get('/data', function (request, response) {
console.log("GET request: /data");
console.log(request.query.apikey);
console.log(request.query.Type) // Type can be "cases" or "distribution". If the type is "cases", all but the zipcode parameter will be considered, and for "distribution", only zipcode will be considered.
console.log(request.query.year);
console.log(request.query.zipcode);
console.log(request.query.neighborhood);
console.log(request.query.sex);
console.log(request.query.race);
dev.validateAPIkey(request.query.apikey, function (isvalid) {
if (isvalid) {
/*dat.filter(request.query.Type, request.query.zipcode, request.query.year, request.query.neighborhood, request.query.sex, request.query.race, function (data) {
response.send(JSON.stringify(data))
});*/
if (request.query.type ==
"distribution") {
a = dat.dist(request.query.zipcode).then(function (a) {
console.log("done")
response.send(JSON.stringify(a))
})
} else if (request.query.type == "cases")
a = dat.cas(request.query.year, request.query.neighborhood, request.query.sex, request.query.race).then(function (a) {
console.log("done")
response.send(JSON.stringify(a))
});
/*
a = dat.out().then(function (a) {
console.log("done")
response.send(JSON.stringify(a))
});*/
} else {
response.send({
"errors": [
{
"status": "402",
"title": "Incorrect API key",
"detail": "You must sign up for an API key, and include this in your request as a query parameter"
}
]
})
}
});
});
//logs the user out and shows home page/signup page
app.get('/sign_up', function (request, response) {
console.log("GET request: /logout");
//log the user out code here
response.redirect('/');
});
//shows instructions page
app.get('/instructions', function (request, response) {
console.log("GET request: /instructions");
response.status(200);
response.setHeader('Content-Type', 'text/html')
response.render('instructions', {});
});
//shows results page for user with id, which shows api key and email
app.get('/users/:id', function (request, response) {
console.log("GET request: /users/:id; email: " + request.params.email); //variable name subject to change
var u; //need a way to get user from email
Developer.getUser(request.params.email, function (user) {
//NEED TO OPTIMIZE FOR OUR CODE
res.status(200);
res.setHeader('Content-Type', 'text/html')
if (user_data.name == "" || user_data.password == "") { //empty forms
console.log("Error: no input for forms");
indexError = 1;
res.render('instructions', {
status: indexError
});
} else if (user_data.name == user.name && user_data.password == user.password) {
console.log("Successful login.")
res.render('results', {
user: user,
gameSelectError: gameSelectError
});
} else if (user_data.name == user.name && user_data.password != user.password) {
console.log("Wrong password.")
indexError = 2;
res.render('instructions', {
status: indexError
});
} else {
username = "";
password = "";
indexError = 3;
res.render('index', {
user: user_data,
status: indexError
});
}
});
});
//creates new user with id and shows results page
app.post('/users', function (request, response) {
dev.addUser(request.body.email, function (theuser) {
console.log(theuser.email);
console.log(theuser.apikey);
if (theuser.apikey == "failure") {
response.status(200);
response.setHeader('Content-Type', 'text/html')
response.render('results', {
user: theuser,
message: "failure"
});
} else {
console.log("user added");
response.status(200);
response.setHeader('Content-Type', 'text/html')
response.render('results', {
user: theuser,
message: "success"
});
}
})
});