forked from alxlvgit/travel-meet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
102 lines (85 loc) · 3.18 KB
/
server.js
File metadata and controls
102 lines (85 loc) · 3.18 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
93
94
95
96
97
98
99
100
101
102
const express = require('express');
require('dotenv').config()
const app = express();
const port = process.env.PORT || 3000;
const exploreRouter = require('./routes/explore-router');
const userProfileRouter = require('./routes/userProfileRouter');
const postCreateRouter = require('./routes/post-create-router');
const apiEventsRouter = require('./backend-api-routes/api-events');
const apiPostsRouter = require('./backend-api-routes/api-feed-routes');
const apiUserRouter = require('./backend-api-routes/api-user-routes');
// Import prisma
const chatRouter = require('./routes/chat-router');
const authRouter = require('./routes/auth-route');
const passportMiddleware = require('./passport-middleware/passport-middleware');
const session = require('express-session');
const server = require('http').createServer(app);
const io = require('socket.io')(server, { cors: { origin: "*" } });
const mapRouter = require('./routes/meet-map-router')(io);
app.set('view engine', 'ejs');
app.use(express.static(__dirname + "/static"));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Session middleware with cookie expiration of 15 minutes
app.use(
session({
secret: "secret",
resave: false,
saveUninitialized: false,
cookie: {
httpOnly: true,
secure: false,
maxAge: 24 * 60 * 60 * 1000,
},
})
);
passportMiddleware(app);
// For testing purposes only
// app.use((req, res, next) => {
// console.log(`User details are: `);
// console.log(req.user);
// console.log("Entire session object:");
// console.log(req.session);
// console.log(`Session details are: `);
// console.log((req.session).passport);
// next();
// });
// For testing purposes only
// Test middleware to store user location in session
app.post('/updateLocation', (req, res) => {
const locationData = req.body;
if ("noPermissionFromUser" in locationData) {
console.log("No permission from user to get location");
req.session.locationData = null;
res.sendStatus(200);
} else {
// Store the location data in the current session
// console.log(locationData, "location data from client");
req.session.locationData = locationData;
res.sendStatus(200);
}
});
app.get('/getLocation', (req, res) => {
const locationData = req.session.locationData;
// console.log(locationData, "location data stored in session");
locationData ? res.json(locationData) : res.json({ error: "No location data found in session" });
});
app.get("/secretKeys", (req, res) => {
const secrets = {
TICKETMASTER_API_KEY: `${process.env.TICKETMASTER_API_KEY}`,
MAPBOX_API_KEY: `${process.env.MAPBOX_API_KEY}`,
}
res.status(200).json(JSON.stringify(secrets));
});
app.use('/auth', authRouter);
app.use('/', exploreRouter);
app.use('/meet', mapRouter);
app.use('/api-events', apiEventsRouter);
app.use('/api-posts', apiPostsRouter);
app.use('/api-user', apiUserRouter);
app.use('/user-profile', userProfileRouter);
app.use('/post-create', postCreateRouter);
app.use('/chat', chatRouter);
server.listen(port, function () {
console.log(`Listening on port ${port}`);
});