This commit is contained in:
Sahat Yalkabov
2013-11-13 15:49:58 -05:00
parent d8c0505420
commit 06b777cce9
32 changed files with 569 additions and 1077 deletions

90
controllers/articles.js Executable file
View File

@@ -0,0 +1,90 @@
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Article = mongoose.model('Article'),
_ = require('underscore');
/**
* Find article by id
*/
exports.article = function(req, res, next, id) {
Article.load(id, function(err, article) {
if (err) return next(err);
if (!article) return next(new Error('Failed to load article ' + id));
req.article = article;
next();
});
};
/**
* Create a article
*/
exports.create = function(req, res) {
var article = new Article(req.body);
article.user = req.user;
article.save(function(err) {
if (err) {
return res.send('users/signup', {
errors: err.errors,
article: article
});
} else {
res.jsonp(article);
}
});
};
/**
* Update a article
*/
exports.update = function(req, res) {
var article = req.article;
article = _.extend(article, req.body);
article.save(function(err) {
res.jsonp(article);
});
};
/**
* Delete an article
*/
exports.destroy = function(req, res) {
var article = req.article;
article.remove(function(err) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(article);
}
});
};
/**
* Show an article
*/
exports.show = function(req, res) {
res.jsonp(req.article);
};
/**
* List of Articles
*/
exports.all = function(req, res) {
Article.find().sort('-created').populate('user', 'name username').exec(function(err, articles) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(articles);
}
});
};

12
controllers/index.js Executable file
View File

@@ -0,0 +1,12 @@
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
_ = require('underscore');
exports.render = function(req, res) {
res.render('index', {
user: req.user ? JSON.stringify(req.user) : "null"
});
};

103
controllers/users.js Executable file
View File

@@ -0,0 +1,103 @@
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
User = mongoose.model('User');
/**
* Auth callback
*/
exports.authCallback = function(req, res, next) {
res.redirect('/');
};
/**
* Show login form
*/
exports.signin = function(req, res) {
res.render('users/signin', {
title: 'Signin',
message: req.flash('error')
});
};
/**
* Show sign up form
*/
exports.signup = function(req, res) {
res.render('users/signup', {
title: 'Sign up',
user: new User()
});
};
/**
* Logout
*/
exports.signout = function(req, res) {
req.logout();
res.redirect('/');
};
/**
* Session
*/
exports.session = function(req, res) {
res.redirect('/');
};
/**
* Create user
*/
exports.create = function(req, res) {
var user = new User(req.body);
user.provider = 'local';
user.save(function(err) {
if (err) {
return res.render('users/signup', {
errors: err.errors,
user: user
});
}
req.logIn(user, function(err) {
if (err) return next(err);
return res.redirect('/');
});
});
};
/**
* Show profile
*/
exports.show = function(req, res) {
var user = req.profile;
res.render('users/show', {
title: user.name,
user: user
});
};
/**
* Send User
*/
exports.me = function(req, res) {
res.jsonp(req.user || null);
};
/**
* Find user by id
*/
exports.user = function(req, res, next, id) {
User
.findOne({
_id: id
})
.exec(function(err, user) {
if (err) return next(err);
if (!user) return next(new Error('Failed to load User ' + id));
req.profile = user;
next();
});
};