-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapp.js
More file actions
60 lines (48 loc) · 1.46 KB
/
Copy pathapp.js
File metadata and controls
60 lines (48 loc) · 1.46 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
require("dotenv").config();
const cors = require("cors");
const express = require("express");
const app = express();
const cookieParser = require("cookie-parser");
const fileUpload = require("express-fileupload");
//regular middleware
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cors());
//cookies and file middleware
app.use(cookieParser());
app.use(
fileUpload({
useTempFiles: true,
tempFileDir: "/tmp/",
})
);
// home route
app.get("/", (req, res) => {
res.send("<h1> Welcome to our social coding experience api! </h1>");
});
//import all routes here
const user = require("./api/user.api");
const friend = require("./api/friend.api");
const vote = require("./api/vote.api");
const auth = require("./api/auth.api");
const Votes = require("./models/Votes.model");
// scheduler to remove expired rated users
app.put("/api/task", async (req, res) => {
try {
const appkey = req.header("Authorization").split(" ")[1];
if (appkey !== process.env.APP_KEY) {
return res.status(400).send(`Unauthenticated`);
}
// expiryTime: { $lt: new Date().getTime() },
await Votes.deleteMany({ expiryTime: { $lt: new Date().getTime() } });
res.status(200).send("Success");
} catch (error) {
res.status(500).send(`${error.message}`);
}
});
//router middleware
app.use("/api/v1/user", user);
app.use("/api/v1/friend", friend);
app.use("/api/v1/rate", vote);
app.use("/api/v1/auth", auth);
module.exports = app;