You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.0 KiB
41 lines
1.0 KiB
var express = require('express'),
|
|
router = express.Router();
|
|
|
|
var Bookmark = require('../models/bookmarks'),
|
|
User = require('../models/users');
|
|
|
|
router.get('/', function(req, res) {
|
|
Bookmark.find(function(err, bookmarks) {
|
|
res.json(bookmarks);
|
|
});
|
|
});
|
|
|
|
router.post('/:user_id', function(req, res) {
|
|
User.findById(req.params.user_id, function(err, user) {
|
|
Bookmark.create(req.body, function(err, bookmark) {
|
|
user.bookmarks.push(bookmark);
|
|
user.save(function(err) {
|
|
res.redirect('/bookmarks');
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
router.put('/:id/:user_id', function(req, res) {
|
|
Bookmark.findByIdAndUpdate(req.params.id, req.body, { new: true }, function(err, bookmark) {
|
|
User.findById(req.params.user_id, function(err, user) {
|
|
for (var i=0; i < user.bookmarks.length; i++) {
|
|
if (user.bookmarks[i].id == req.params.id) {
|
|
user.bookmarks[i] = { _id: req.params.id, name: req.body.name, url: req.body.url }
|
|
user.save(function(err) {
|
|
res.redirect('/bookmarks');
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
module.exports = router; |