summaryrefslogtreecommitdiff
path: root/server/lib/api
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-08-18 15:56:15 -0400
committerJules Laplace <jules@okfoc.us>2015-08-18 15:56:15 -0400
commit1807ea009f23ac446cb103005045942b733ffc61 (patch)
tree861791e2abbaf893694555871c551957803e3e09 /server/lib/api
parentbb973c2a2ceef0008325129bcde0ff9ddc3fdb6a (diff)
edit scale
Diffstat (limited to 'server/lib/api')
-rw-r--r--server/lib/api/blueprint.js105
-rw-r--r--server/lib/api/index.js1
-rw-r--r--server/lib/api/media.js16
3 files changed, 106 insertions, 16 deletions
diff --git a/server/lib/api/blueprint.js b/server/lib/api/blueprint.js
new file mode 100644
index 0000000..a932383
--- /dev/null
+++ b/server/lib/api/blueprint.js
@@ -0,0 +1,105 @@
+/* jshint node: true */
+
+var _ = require('lodash'),
+ crypto = require('crypto'),
+ util = require('../util'),
+ upload = require('../upload'),
+ config = require('../../../config.json'),
+ Blueprint = require('../schemas/Blueprint');
+
+var blueprint = {
+
+ user: function(req, res){
+ var offset = Number(req.query.offset) || 0
+ var limit = Math.min( Number(req.query.limit), 50 ) || 20
+ var query = { user_id: req.user._id }
+ if (req.query.tag) {
+ query.tag = req.query.tag
+ }
+ Blueprint.find(query)
+ .sort({'created_at': -1})
+ .skip(offset)
+ .limit(limit)
+ .exec(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 Blueprint(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: { media: { message: "Problem saving image: " + err } } } })
+ },
+ success: function(url){
+ data.url = url
+ done()
+ }
+ })
+
+ function done () {
+ new Blueprint(data).save(function(err, rec) {
+ if (err || ! rec) { return res.json({ error: err }) }
+ res.json(rec)
+ })
+ }
+ },
+
+ scale: function(req, res){
+ var _id = req.body._id
+ var data = util.cleanQuery(req.body)
+ if (! _id) { return res.json({ error: 404 }) }
+ Blueprint.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: 404 }) }
+ doc.scale = data.scale
+ doc.units = data.units
+ doc.line = data.line
+ console.log(doc)
+ doc.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
+ }
+ Blueprint.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" })
+ }
+ Blueprint.remove({ _id: _id }, function(err){
+ res.json({ status: "OK" })
+ })
+ })
+ }
+
+}
+
+module.exports = blueprint
diff --git a/server/lib/api/index.js b/server/lib/api/index.js
index 9478d9b..8254232 100644
--- a/server/lib/api/index.js
+++ b/server/lib/api/index.js
@@ -1,6 +1,7 @@
/* jshint node: true */
var api = {
+ blueprint: require('./blueprint'),
docs: require('./docs'),
layouts: require('./layouts'),
media: require('./media'),
diff --git a/server/lib/api/media.js b/server/lib/api/media.js
index 68e012c..85cbdd6 100644
--- a/server/lib/api/media.js
+++ b/server/lib/api/media.js
@@ -65,22 +65,6 @@ var media = {
}
},
- scale: function(req, res){
- var _id = req.body._id
- var data = util.cleanQuery(req.body)
- if (! _id) { return res.json({ error: 404 }) }
- 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: 404 }) }
- doc.scale = data.scale
- doc.units = data.units
- doc.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) {