summaryrefslogtreecommitdiff
path: root/server/lib/api/media.js
blob: 089e327843a0c6dfa98c6b67e78afe251e1ae6e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* 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){
		Media.find({ user_id: req.user._id }, function(err, media){
			res.json(media || [])
		})
	},
	
	upload: function(req, res){
		var data = util.cleanQuery(req.body)
		data.updated_at = new Date ()
		
		if (req.files.avatar) {
			upload.put("avatars", req.files.avatar, {
				unacceptable: function(err){
					res.json({ error: { errors: { avatar: { message: "Problem saving avatar: " + err } } } })
				},
				success: function(url){
					data.photo = url
					done()
				}
			})
		}
		else {
			done()
		}
		
		function done () {
			_.extend( req.user, data )
			req.user.save(function(err, msg) {
				err ? res.json({ status: "FAIL", error: err })
					: res.json({ status: "OK", payload: req.user })
			})
		}
	}
}

module.exports = media