summaryrefslogtreecommitdiff
path: root/server/lib
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-06-11 13:31:33 -0400
committerJules Laplace <jules@okfoc.us>2014-06-11 13:31:33 -0400
commit50ba987880d90f40a5bf4d7e9e125b453723882b (patch)
tree1f3aa2730e381cb8f7fd872d5ee84fe602b23ca7 /server/lib
parent7e72bf7d028c2d95555b1132251103eac4dacec9 (diff)
store layouts and retrieve them
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/api.js82
-rw-r--r--server/lib/upload.js2
-rw-r--r--server/lib/util.js2
3 files changed, 58 insertions, 28 deletions
diff --git a/server/lib/api.js b/server/lib/api.js
index 9d14651..f7be925 100644
--- a/server/lib/api.js
+++ b/server/lib/api.js
@@ -41,11 +41,7 @@ var api = {
if (req.files.avatar) {
upload.put("avatars", req.files.avatar, {
- acceptable: function(){
- console.log("acceptable")
- },
unacceptable: function(err){
- console.log("unacceptable")
res.json({ error: { errors: { avatar: { message: "Problem saving avatar: " + err } } } })
},
success: function(url){
@@ -133,56 +129,90 @@ var api = {
},
show: function(req, res){
- Layout.findOne({ name: req.query.name }, function(err, doc){
+ Layout.findOne({ slug: req.params.slug }, function(err, doc){
if (doc) {
res.json(doc)
+ return
}
else {
- var name = util.sanitize(req.query.name)
+ var name = util.sanitize(req.params.slug)
if (name == "new") {
name = ""
}
- res.json({ name: name, isNew: true })
+ res.json({ _id: "new", name: name, isNew: true })
}
})
},
create: function(req, res){
var data = util.cleanQuery(req.body)
- data.name = util.sanitize(data.new_name)
- data.displayName = util.sanitize(data.displayName)
+ data.name = util.sanitize(data.name)
+ data.slug = util.slugify(data.name)
data.user_id = req.user._id
- delete data.new_name
- new Layout(data).save(function(err, doc){
- if (err || ! doc) { return res.json({ error: err }) }
- res.json(doc)
+ data.rooms = JSON.parse(data.rooms)
+ data.startPosition = JSON.parse(data.startPosition)
+
+ upload.put("layouts", req.files.thumbnail, {
+ unacceptable: function(err){
+ res.json({ error: { errors: { thumbnail: { message: "Problem saving thumbnail: " + err } } } })
+ },
+ success: function(url){
+ data.photo = url
+ done()
+ }
})
+
+ function done() {
+ new Layout(data).save(function(err, doc){
+ if (err || ! doc) { return res.json({ error: err }) }
+ res.json(doc)
+ })
+ }
},
update: function(req, res){
- var data = util.cleanQuery(req.body)
- if (data.name == "new") {
+ var _id = req.body._id
+ if (_id == "new") {
return api.docs.create(req, res)
}
- Layout.findOne({ name: data.name }, function(err, doc){
- if (err || ! doc) { return res.json({ error: err }) }
- data.name = data.new_name
- delete data.new_name
- _.extend(doc, data)
- doc.save(function(err, doc){
+
+ var data = util.cleanQuery(req.body)
+ data.name = util.sanitize(data.name)
+ data.slug = util.slugify(data.name)
+ data.user_id = req.user._id
+
+ upload.put("layouts", req.files.thumbnail, {
+ unacceptable: function(err){
+ res.json({ error: { errors: { thumbnail: { message: "Problem saving thumbnail: " + err } } } })
+ },
+ success: function(url){
+ data.photo = url
+ done()
+ }
+ })
+
+ function done() {
+ Layout.findOne({ _id: _id }, function(err, doc){
if (err || ! doc) { return res.json({ error: err }) }
- res.json(doc)
+ _.extend(doc, data)
+ doc.rooms = JSON.parse(data.rooms)
+ doc.startPosition = JSON.parse(data.startPosition)
+
+ doc.save(function(err, doc){
+ if (err || ! doc) { return res.json({ error: err }) }
+ res.json(doc)
+ })
})
- })
+ }
},
destroy: function(req, res){
- var name = util.sanitize(req.body.name)
- if (! name || ! name.length) {
+ var _id = req.body._id
+ if (! id || ! id.length) {
res.json({ error: 404 })
return
}
- Layout.remove({ name: name }, function(err){
+ Layout.remove({ _id: _id }, function(err){
res.json({ status: "OK" })
})
},
diff --git a/server/lib/upload.js b/server/lib/upload.js
index 4346a99..a5d7871 100644
--- a/server/lib/upload.js
+++ b/server/lib/upload.js
@@ -20,7 +20,7 @@ module.exports.put = function (key, file, opt) {
var fileSize, fileType, filename
var err
var now = new Date()
-
+
var ts = moment().format('YYYYMMDD')
var extension = acceptableuploadTypes[file.mimetype]
diff --git a/server/lib/util.js b/server/lib/util.js
index c8771dc..2ff4e16 100644
--- a/server/lib/util.js
+++ b/server/lib/util.js
@@ -13,7 +13,7 @@ var util = {}
util.trim = function (s){ return (s || "").replace(whitespaceHead,"").replace(whitespaceTail,"") }
util.slugify = function (s){
- return (s || "").replace(whitespace,"-").replace(nonAlphanumerics, '-').replace(consecutiveDashes,"-")
+ return (s || "").toLowerCase().replace(whitespace,"-").replace(nonAlphanumerics, '-').replace(consecutiveDashes,"-")
}
util.sanitize = function (s){