Skip to content

Commit 2141890

Browse files
Add api route for posting review and test
1 parent 69e6551 commit 2141890

3 files changed

Lines changed: 45 additions & 6 deletions

File tree

src/app.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ const course = require('./routes/course');
2020
const user = require('./routes/user');
2121
const app = express();
2222

23+
//process.setMaxListeners(11);
24+
2325
//const env = process.env.NODE_ENV || 'dev';
2426

2527
//mongoDb Connection
@@ -42,7 +44,7 @@ db.on('connected', function() {
4244
// Callback to populate DB once collections have been cleared
4345
seeder.populateModels(data, function() {
4446
console.log("Finished seeding Database!");
45-
47+
4648
app.emit("appStarted"); //Emits an event to tell our tests it is ok to now test.
4749
});
4850
});

src/routes/course.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const express = require('express');
22
const router = express.Router();
33
const Course = require('../models/course');
4+
const Review = require('../models/review');
45
import {authorizeUser} from "../middleware/index";
56
import Utils from '../utils';
67

@@ -45,10 +46,8 @@ PUT Routes
4546
*/
4647
router.put('/:courseId', authorizeUser, (req, res, next) => {
4748
Course.findByIdAndUpdate(req.params.courseId, req.body, (err, course) => {
48-
console.log("hit this?!?");
4949
Utils.isError(err, next);
5050
let status = 204;
51-
console.log("how about here?!?!");
5251
return res.status(status).json({}); //Send status 204 and no content..
5352
});
5453
});
@@ -70,5 +69,20 @@ router.post('/', authorizeUser, (req, res, next) => {
7069
});
7170
});
7271

73-
72+
router.post('/:courseId/reviews', authorizeUser, (req, res, next) => {
73+
let review = new Review(req.body);
74+
review.save((err) => {
75+
Utils.isError(err, next);
76+
Course.findById(req.params.courseId, (err, course) => {
77+
Utils.isError(err, next);
78+
course.reviews.push(review._id);
79+
course.save((err) => {
80+
Utils.isError(err, next);
81+
let status = 201;
82+
res.location('/api/courses/'+req.params.courseId);
83+
return res.status(status).json({success: true, message: "Review Successfully added to Course!", status: status, course});
84+
});
85+
});
86+
});
87+
});
7488
module.exports = router;

test/course_test.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ describe('Courses', () => {
9090
res.should.have.status(401);
9191
done();
9292
});
93-
})
94-
93+
});
9594
});
9695

9796
describe('/POST courses', () => {
@@ -173,5 +172,29 @@ describe('Courses', () => {
173172
}
174173
});
175174

175+
describe('/POST course/:courseId/reviews', () => {
176+
it('should POST when a review is supplied with proper information and has an authorized user', (done) => {
177+
let review = {
178+
user: '57029ed4795118be119cc438',
179+
postedOn: "2016-02-04T21:22:00.000Z",
180+
rating: 4,
181+
review: "Lorem ipsum This is a review that I am writing, blah blah blah de blah"
182+
};
183+
let courseId = "57029ed4795118be119cc43d";
184+
postReview(courseId, validAuth, review, done);
185+
});
186+
187+
function postReview(courseId, validAuth, review, done) {
188+
chai.request(server)
189+
.post(courseIndexLink+courseId+'/reviews')
190+
.auth(validAuth.user, validAuth.pass)
191+
.send(review)
192+
.end((err, res) => {
193+
res.body.should.have.property('message').equal("Review Successfully added to Course!");
194+
res.should.have.status(201);
195+
done();
196+
});
197+
};
198+
});
176199

177200
});

0 commit comments

Comments
 (0)