Skip to content

Commit 6af5e34

Browse files
committed
Merge branch 'master' of https://github.com/TheCodeCamp/CodeCamp
Profile
2 parents c40a514 + ef495d0 commit 6af5e34

5 files changed

Lines changed: 162 additions & 38 deletions

File tree

contest/models/contest.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@ var contestSchema = new mongoose.Schema({
66
type:String,
77
required:true
88
},
9+
'id':{
10+
type:String,
11+
required:true,
12+
unique:true
13+
},
914
'startTime':{
1015
type:Date,
11-
required:true,
16+
required:true
1217
},
1318
'endTime':{
1419
type:Date,

package-lock.json

Lines changed: 29 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"jsonwebtoken": "^8.1.0",
3636
"lodash": "^4.17.4",
3737
"mongodb": "*",
38-
"mongoose": "*",
38+
"mongoose": "^5.0.3",
3939
"morgan": "^1.9.0",
4040
"multer": "^1.3.0",
4141
"passport": "*",

server/app.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ const express= require('express');
33
const morgan = require('morgan');
44
const passport = require('passport');
55
const helmet = require('helmet')
6-
const contest = require('./../contest/models/contest')
76
const flash = require('connect-flash')
87
const cors = require('cors')
98
const app = express();
@@ -38,10 +37,10 @@ app.use(passport.session()); // persistent login sessions
3837
app.use(flash());
3938
app.use(helmet());
4039
//Routes
41-
const problems = require('./routes/problems');
40+
const contest = require('./routes/contest');
4241
const users = require('./routes/users');
4342
const solutions = require('./routes/solution');
44-
app.use('/problem', problems);
43+
app.use('/contest', contest);
4544
app.use('/users', users);
4645
app.use('/solution',solutions)
4746

server/routes/contest.js

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
const express = require('express');
2+
const _ = require('lodash');
3+
const Contest = require('./../../contest/models/contest');
4+
const Problem = require('./../../contest/models/problem/problem')
5+
6+
const router = express.Router();
7+
8+
router.post('/',(req,res)=>{
9+
const body = _.pick(req.body,['name','startTime','endTime','id','description']);
10+
const contest = new Contest(body);
11+
contest
12+
.save()
13+
.then((contest)=>{
14+
res.status(200).json({
15+
'success':true,
16+
'msg':'contest added Now You can add problems'
17+
})
18+
})
19+
.catch((err)=>{
20+
res.status(400).json({
21+
'success':false,
22+
'msg':'Error Occured While Adding contest ! please Try Again'
23+
})
24+
})
25+
26+
});
27+
28+
router.get('/:id',(req,res)=>{
29+
const id = req.params.id;
30+
Contest.findOne({'id':id},(err,contest)=>{
31+
if(err){
32+
return res.status(400).json({
33+
'success':false,
34+
'msg':'Wrong Request'
35+
})
36+
}else if(!contest){
37+
return res
38+
.status(404)
39+
.json({
40+
'success':false,
41+
'msg':'Can\'t find any contest with given id'
42+
})
43+
}
44+
res
45+
.status(200)
46+
.json({
47+
'success':true,
48+
'msg':contest
49+
})
50+
})
51+
})
52+
53+
router.get('/',(req,res)=>{
54+
var projection ={
55+
_id : false,
56+
name : true
57+
}
58+
Contest.find({},projection,(err,contest)=>{
59+
if(err){
60+
return res.status(400).json({
61+
'success':false,
62+
'msg':'Wrong Request'
63+
})
64+
}else if(!contest){
65+
return res
66+
.status(404)
67+
.json({
68+
'success':false,
69+
'msg':'Can\'t find any contest'
70+
})
71+
}
72+
res
73+
.status(200)
74+
.json({
75+
'success':true,
76+
'contests':contest
77+
})
78+
})
79+
})
80+
81+
82+
router.get('/:id',(req,res)=>{
83+
const id = req.params.id;
84+
Contest.findOne({'id':id},(err,contest)=>{
85+
if(err){
86+
return res.status(400).json({
87+
'success':false,
88+
'msg':'Wrong Request'
89+
})
90+
}else if(!contest){
91+
return res
92+
.status(404)
93+
.json({
94+
'success':false,
95+
'msg':'Can\'t find any contest with given id'
96+
})
97+
}
98+
res
99+
.status(200)
100+
.json({
101+
'success':true,
102+
'msg':contest
103+
})
104+
})
105+
})
106+
107+
108+
// problem routes
109+
110+
111+
router.post('/:id/question' , (req,res)=>{
112+
const id = req.params.id;
113+
var body = _.pick(req.body,['code','name','successfulSubmission','level','description','input_format','output_format','constraints','input_example','output_example','explanation_example','date_added','timelimit','sourcelimit','author']);
114+
var problem = new Problem(body);
115+
problem.save().then((pro) => {
116+
Contest.findOneAndUpdate({"id":id},{ "$push": { "questions": problem } },(err,con)=>{
117+
con.questions.push(body)
118+
res.send(con)
119+
})
120+
121+
})
122+
123+
})
124+
module.exports = router;

0 commit comments

Comments
 (0)