mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
112 lines
2.3 KiB
JavaScript
112 lines
2.3 KiB
JavaScript
![]() |
|
||
|
var mongoose = require('mongoose'),
|
||
|
Post = mongoose.model('Post');
|
||
|
|
||
|
var md5 = require('MD5');
|
||
|
var fs = require('fs');
|
||
|
|
||
|
var log = require('log4node');
|
||
|
|
||
|
exports.index = function(req, res) {
|
||
|
log.info('posts.index');
|
||
|
var query = Post.find()
|
||
|
.populate('author', 'name')
|
||
|
.sort('-createdOn')
|
||
|
.exec(function(err, results) {
|
||
|
if (err) {
|
||
|
res.json(500, err);
|
||
|
} else {
|
||
|
res.json(results);
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.get = function(req, res, next) {
|
||
|
var id = req.param('post_id');
|
||
|
Post.findById(id)
|
||
|
.exec(function(err, post) {
|
||
|
if (err) return next(err);
|
||
|
if (!post) return next(new Error('Failed to load post ' + id));
|
||
|
|
||
|
res.json(post);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.create = function(req, res, next) {
|
||
|
log.info('posts.create %j', req.body);
|
||
|
|
||
|
var post = new Post({
|
||
|
title: req.body.title,
|
||
|
preview: req.body.preview,
|
||
|
details: req.body.details,
|
||
|
image: req.body.image,
|
||
|
gallery: req.body.gallery,
|
||
|
status: req.body.status,
|
||
|
createdOn: req.body.createdOn,
|
||
|
postedOn: req.body.postedOn,
|
||
|
author: req.user
|
||
|
});
|
||
|
|
||
|
return post.save(function(err) {
|
||
|
if (err) log.error("Error: %s", err);
|
||
|
|
||
|
return res.json(post);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.update = function(req, res, next) {
|
||
|
var id = req.param('post_id');
|
||
|
|
||
|
console.log('updating post');
|
||
|
|
||
|
return Post.findById(id, function(err, post) {
|
||
|
post.title = req.body.title;
|
||
|
post.preview = req.body.preview;
|
||
|
post.details = req.body.details;
|
||
|
post.image = req.body.image;
|
||
|
post.gallery = req.body.gallery;
|
||
|
post.status = req.body.status;
|
||
|
post.postedOn = req.body.postedOn;
|
||
|
|
||
|
return post.save(function(err) {
|
||
|
if (err)
|
||
|
log.error("Error: %s", err);
|
||
|
|
||
|
return res.json(post);
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.destroy = function(req, res, next) {
|
||
|
var id = req.param('post_id');
|
||
|
log.info('posts.destroy %s', id);
|
||
|
|
||
|
return Post.findById(id, function(err, post) {
|
||
|
post.deleted = true;
|
||
|
|
||
|
return post.save(function(err) {
|
||
|
if (err)
|
||
|
log.error("Error: %s", err);
|
||
|
|
||
|
return res.json(post);
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.upload = function(req, res, next) {
|
||
|
var path = req.files.file.path;
|
||
|
|
||
|
fs.readFile(path, function(err, data) {
|
||
|
var hash = md5(data);
|
||
|
|
||
|
fs.writeFile('/srv/biomed-site/images/' + hash, data, function(err) {
|
||
|
if (err)
|
||
|
log.error("Error: %s", err);
|
||
|
|
||
|
return res.json({
|
||
|
filename: hash
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
};
|