-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
107 lines (91 loc) · 2.98 KB
/
server.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
const express = require('express');
const app = express();
const cors = require('cors');
const path = require('path');
const functions = require('./db-functions.js');
const CryptoJS = require('crypto-js')
app.use(cors());
// Serve static files from the React app
app.use(express.static(path.join(__dirname, 'client/build')));
app.get('/api/schedule', (req, res) => {
const {
email,
id
} = req.query;
functions
.handleFormSubmission(email, id)
.then((unlinkedClasses) =>
res.send({
success: true,
unlinkedClasses
})
)
.catch((error) =>
res.send({
success: false,
message: error,
})
);
});
app.get('/api/addLink', (req, res) => {
const {
course,
section,
link
} = req.query;
functions.handleNewLink(course, section, link)
.then((res) => {
res.send({success: true, message: res})
})
.catch((err) => {
res.send({success: false, message: err})
});
})
app.get('/api/delete-user', (req, res) => {
const {
email
} = req.query;
const replacedEmail = email.replace(/p1L2u3S/g, '+').replace(/s1L2a3S4h/g, '/').replace(/e1Q2u3A4l/g, '=').replace(/2F9dCse/g, '?');
const emailDec = CryptoJS.AES.decrypt(replacedEmail, process.env.SECRET_KEY).toString(CryptoJS.enc.Utf8);
functions
.deleteUser(emailDec)
.then(() => {
res.redirect('https://media.giphy.com/media/XreQmk7ETCak0/giphy.gif');
})
.catch((err) => {
res.redirect(
'https://media.giphy.com/media/H54feNXf6i4eAQubud/giphy.gif'
);
});
});
app.get('/api/delete-class-section', (req, res) => {
const {
email,
classCode,
classSection
} = req.query;
const replacedEmail = email.replace(/p1L2u3S/g, '+').replace(/s1L2a3S4h/g, '/').replace(/e1Q2u3A4l/g, '=').replace(/2F9dCse/g, '?');
const emailDec = CryptoJS.AES.decrypt(replacedEmail, process.env.SECRET_KEY).toString(CryptoJS.enc.Utf8);
const classCodeFormatted = classCode.split('+').join(' ');
const classSectionFormatted = classSection.split('+').join(' ');
functions
.deleteClassForUser(emailDec, classCodeFormatted, classSectionFormatted)
.then(() => {
res.redirect('https://media.giphy.com/media/XreQmk7ETCak0/giphy.gif');
})
.catch((err) => {
res.redirect(
'https://media.giphy.com/media/H54feNXf6i4eAQubud/giphy.gif'
);
});
});
// The "catchall" handler: for any request that doesn't
// match one above, send back React's index.html file.
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname + '/client/build/index.html'));
});
const PORT = process.env.PORT || 3333;
// functions.deleteUser('hyw2@cornell.edu');
app.listen(PORT, () => {
console.log(`Listening on port ${PORT}`);
});