/* jshint node: true */ var _ = require('lodash'), crypto = require('crypto'), util = require('../util'), upload = require('../upload'), config = require('../../../config.json'), Media = require('../schemas/Media'); var media = { user: function(req, res){ var query = { user_id: req.user._id } if (req.query.tag) { query.tag = req.query.tag } Media.find(query, function(err, media){ res.json(media || []) }) }, create: function(req, res){ var data = util.cleanQuery(req.body) data.user_id = req.user._id data.created_at = new Date () if (data.tag) { data.tag = util.sanitize(data.tag) } new Media(data).save(function(err, rec){ if (err || ! rec) { return res.json({ error: err }) } return res.json(rec) }) }, upload: function(req, res){ var data = util.cleanQuery(req.body) data.user_id = req.user._id data.created_at = new Date () data.type = "image" upload.put("media", req.files.image, { username: req.user.username, unacceptable: function(err){ res.json({ error: { errors: { avatar: { message: "Problem saving image: " + err } } } }) }, success: function(url){ data.url = url done() } }) function done () { new Media(data).save(function(err, rec) { if (err || ! rec) { return res.json({ error: err }) } res.json(rec) }) } }, destroy: function(req, res){ var _id = util.sanitize(req.body._id) if (! _id || ! _id.length) { res.json({ error: 404 }) return } Media.findOne({ _id: _id }, function(err, doc){ if (! doc) { return res.json({ error: 404 }) } if (String(doc.user_id) !== String(req.user._id)) { return res.json({ error: "access denied" }) } Media.remove({ _id: _id }, function(err){ res.json({ status: "OK" }) }) }) } } module.exports = media