Commit | Line | Data |
---|---|---|
89021f18 BA |
1 | let router = require("express").Router(); |
2 | const access = require("../utils/access"); | |
3 | const ProblemModel = require("../models/Problem"); | |
4 | const sanitizeHtml = require('sanitize-html'); | |
5 | ||
866842c3 BA |
6 | router.post("/problems", access.logged, access.ajax, (req,res) => { |
7 | if (ProblemModel.checkProblem(req.body.prob)) | |
8 | { | |
9 | const problem = | |
10 | { | |
11 | vid: req.body.prob.vid, | |
12 | fen: req.body.prob.fen, | |
13 | uid: req.userId, | |
14 | instruction: sanitizeHtml(req.body.prob.instruction), | |
15 | solution: sanitizeHtml(req.body.prob.solution), | |
16 | }; | |
17 | ProblemModel.create(problem, (err,ret) => { | |
18 | res.json(err || {id:ret.pid}); | |
19 | }); | |
20 | } | |
21 | else | |
22 | res.json({}); | |
23 | }); | |
24 | ||
89021f18 BA |
25 | router.get("/problems", (req,res) => { |
26 | const probId = req.query["pid"]; | |
866842c3 | 27 | if (probId && probId.match(/^[0-9]+$/)) |
89021f18 | 28 | { |
89021f18 | 29 | ProblemModel.getOne(req.query["pid"], (err,problem) => { |
866842c3 | 30 | res.json(err || {problem: problem}); |
89021f18 BA |
31 | }); |
32 | } | |
33 | else | |
34 | { | |
35 | ProblemModel.getAll((err,problems) => { | |
36 | res.json(err || {problems:problems}); | |
37 | }); | |
38 | } | |
39 | }); | |
40 | ||
89021f18 | 41 | router.put("/problems", access.logged, access.ajax, (req,res) => { |
604b951e | 42 | let obj = req.body.prob; |
866842c3 BA |
43 | if (ProblemModel.checkProblem(obj)) |
44 | { | |
45 | obj.instruction = sanitizeHtml(obj.instruction); | |
46 | obj.solution = sanitizeHtml(obj.solution); | |
47 | ProblemModel.safeUpdate(obj, req.userId); | |
48 | } | |
49 | res.json({}); | |
89021f18 BA |
50 | }); |
51 | ||
52 | router.delete("/problems", access.logged, access.ajax, (req,res) => { | |
53 | const pid = req.query.id; | |
866842c3 BA |
54 | if (pid.toString().match(/^[0-9]+$/)) |
55 | ProblemModel.safeRemove(pid, req.userId); | |
56 | res.json({}); | |
89021f18 BA |
57 | }); |
58 | ||
59 | module.exports = router; |