diff --git a/controllers/articles.js b/controllers/articles.js
index a4f0b2d..ab8ca89 100644
--- a/controllers/articles.js
+++ b/controllers/articles.js
@@ -1,6 +1,7 @@
var express = require('express');
var router = express.Router();
var Article = require('../models/articles.js');
+var Author = require('../models/authors.js')
router.get('/', function(req, res){
Article.find({}, function(err, foundArticles){
@@ -35,16 +36,24 @@ router.delete('/:id', function(req, res){
});
router.get('/:id/edit', function(req, res){
- Article.findById(req.params.id, function(err, foundArticle){
- res.render('articles/edit.ejs', {
- article: foundArticle
+ Author.find({}, function(err, allAuthors){
+ Article.findById(req.params.id, function(err, foundArticle){
+ res.render('articles/edit.ejs', {
+ article: foundArticle,
+ authors: allAuthors
+ });
});
});
});
router.put('/:id', function(req, res){
- Article.findByIdAndUpdate(req.params.id, req.body, function(){
- res.redirect('/articles');
+ Author.findById(req.body.authorId, function(err, foundAuthor){
+ Article.findByIdAndUpdate(req.params.id, req.body, {new:true}, function(err, updatedArticle){
+ foundAuthor.articles.push(updatedArticle);
+ foundAuthor.save(function(){
+ res.redirect('/articles');
+ });
+ });
});
});
diff --git a/models/authors.js b/models/authors.js
index 673ff6b..2d3cd75 100644
--- a/models/authors.js
+++ b/models/authors.js
@@ -1,7 +1,9 @@
var mongoose = require('mongoose');
+var Article = require('./articles.js');
var authorSchema = mongoose.Schema({
- name: String
+ name: String,
+ articles: [Article.schema]
});
var author = mongoose.model('Author', authorSchema);
diff --git a/views/articles/edit.ejs b/views/articles/edit.ejs
index 6fea2bb..318eb6b 100644
--- a/views/articles/edit.ejs
+++ b/views/articles/edit.ejs
@@ -25,6 +25,12 @@
+ Choose and author:
+