forked from JeffThorslund/Bent-Shaft-Maps
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
113 lines (95 loc) · 3.03 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
108
109
110
111
112
113
/*--Custom Modules--*/
const readRiverDataFiles = require("./modules/readRiverDataFiles");
const getMapList = require("./modules/getMapList");
const sendMail = require("./modules/sendMail");
const handleSubmit = require("./modules/handleSubmit");
const handleClickAddRapid = require("./modules/handleClickAddRapid");
const handleClickAddFeature = require("./modules/handleClickAddFeature");
const handleClickAddRiver = require("./modules/handleClickAddRiver");
const handleDelete = require("./modules/handleClickDelete");
/*--Modules==*/
const compression = require("compression");
const bodyParser = require("body-parser");
const express = require("express");
const path = require("path");
/*--Server--*/
const app = express();
const http = require("http").createServer(app);
/*--Middleware--*/
require("dotenv").config();
app.use(compression());
app.use(bodyParser.json({ limit: "50mb" }));
/*--Socket--*/
var io = require("socket.io")(http);
io.on("connection", (socket) => {
console.log("a user connected");
});
app.use(express.static(path.join(__dirname, "client/build")));
app.get("*", (req, res) => {
res.sendFile(path.join(__dirname + "/client/build/index.html"));
});
app.post("/api/data", (req, res, next) => {
let data = readRiverDataFiles(req.body.path);
res.send(data);
});
app.post("/api/mailer", (req, res, next) => {
const { img, desc, email, river, rapid } = req.body;
sendMail(img, desc, email, river, rapid);
res.send("Submitted!");
});
app.post("/api/getMapList", (req, res, next) => {
console.log(req.body.path);
let data = getMapList(req.body.path);
res.send(JSON.stringify(data));
});
app.post("/api/handleSubmit", (req, res, next) => {
let riverName = req.body.rivers[req.body.riverIndex].name;
handleSubmit(riverName, req.body.river);
res.send("Submission Received!");
io.emit("update");
});
app.post("/api/handleDelete", (req, res, next) => {
const {
rivers,
riverIndex,
rapidIndex,
featureType,
featureIndex,
} = req.body;
let river = handleDelete(
rivers,
riverIndex,
rapidIndex,
featureType,
featureIndex
);
let riverName = rivers[riverIndex].name;
handleSubmit(riverName, river);
res.send("delete submission received");
});
app.post("/api/handleClickAddRiver", (req, res, next) => {
handleClickAddRiver(req.body.riverName);
res.send("River Added!");
});
app.post("/api/handleClickAddRapid", (req, res, next) => {
const { rivers, riverIndex } = req.body;
let river = handleClickAddRapid(rivers, riverIndex);
let riverName = rivers[riverIndex].name;
handleSubmit(riverName, river);
res.send("Rapid Added!");
});
app.post("/api/handleClickAddFeature", (req, res, next) => {
const { rivers, riverIndex, rapidIndex, newFeatureType } = req.body;
let river = handleClickAddFeature(
rivers,
riverIndex,
rapidIndex,
newFeatureType
);
let riverName = rivers[riverIndex].name;
handleSubmit(riverName, river);
res.send("Feature Added!");
});
const port = process.env.PORT || 5000;
http.listen(port);
console.log(`Server is started baby!`);