-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
119 lines (102 loc) · 3.78 KB
/
Copy pathindex.js
File metadata and controls
119 lines (102 loc) · 3.78 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
const express = require("express");
const request = require('request');
const cors = require("cors")
const { exec } = require("child_process");
const bodyParser = require("body-parser");
const cookieParser = require('cookie-parser')
const fs = require("fs");
const util = require("util");
const fs_writeFile = util.promisify(fs.writeFile);
const fs_readFile = util.promisify(fs.readFile);
const mongoose = require("mongoose");
const routes = require("./routes/app");
const userRoutes = require("./routes/userRoutes");
const feedbackRoutes = require("./routes/feedbackRoutes");
const forumRoutes = require("./routes/forumRouter");
const jwtAuthRoutes = require("./routes/jwtAuthRoute");
const studyPlanRoutes = require("./routes/studyPlanRoutes");
const studyPlanItemRoutes = require("./routes/studyPlanItemRoutes");
const commentRoutes = require("./routes/commentRoutes");
const youtubeRoutes = require("./routes/youtubeRoutes");
const auth = require("./auth");
const app = express();
const corsOptions = {
origin: "http://localhost:3000",
allowedHeaders : ["Authorization", "Content-Type", "Accept", "Origin", "X-Requested-With"],
credentials : true,
methods: ["GET","PUT","POST","DELETE","HEAD","OPTIONS","PATCH"]
}
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));
// parse application/json
app.use(bodyParser.json());
app.use(bodyParser.text());
app.use(cookieParser());
app.use(cors(corsOptions));
app.options('*', cors(corsOptions));
mongoose
.connect(
"mongodb+srv://DB:mongodbatlas@cluster0-8pbfx.mongodb.net/test?retryWrites=true&w=majority",
)
.then(() => console.log("DB connected"));
app.post("/compile", async (req, res) => {
const data = JSON.parse(req.body);
await fs_writeFile("javaTest.java", data.code);
exec(`javac javaTest.java`, (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
res.status(500).send(error.message);
}
if (stderr) {
console.log(`stderr: ${stderr}`);
res.status(500).send("Something went wrong");
} else {
res.status(200).send("Code compiled, running ...");
}
});
});
app.get("/run", async (req, res) => {
console.log("Running code ...");
const childProcess = require("child_process").spawn("java", ["javaTest"]);
let output = "";
childProcess.stdout.on("data", (data) => {
output += data.toString();
console.log(output);
});
childProcess.stderr.on("data", function (data) {
console.log(data);
output += data.toString();
});
childProcess.on("close", (code) => {
console.log(`Child process exited with code ${code}`);
output = output.replace(/(?:\r\n|\r|\n)/g, "<br>");
res.status(200).send(output);
});
});
app.get('/data/:id',(req,res)=>{
console.log(req.params.id);
let c = req.params.id;
//console.log(c);
request(`https://clist.by:443/api/v1/contest/?resource__id=${c}&start__gte=2020-1-4T00%3A00%3A00&order_by=-start&username=mab&api_key=16f0b8a357675130b0756dc337fe50bb76753053`,
function (error, response, body) {
res.send(body)
});
});
mongoose.Promise = global.Promise;
app.use("/auth", jwtAuthRoutes);
app.use("/user", userRoutes);
app.use("/studyplan",auth.verifyAuthentication,studyPlanRoutes)
app.use("/studyplanitem", auth.verifyAuthentication,studyPlanItemRoutes);
app.use("/youtube",auth.verifyAuthentication,youtubeRoutes)
app.use("/", auth.verifyAuthentication, routes);
app.use("/feedback", auth.verifyAuthentication, feedbackRoutes);
app.use("/", auth.verifyAuthentication, forumRoutes);
app.use("/" , auth.verifyAuthentication, commentRoutes);
//error handling
app.use(function (err, req, res) {
console.log("SOMETHING WENT WRONG-------")
res.status(403).sned({error: err});
});
app.listen(5000, () => {
console.log("Server running on port 5000 ------");
});