summaryrefslogtreecommitdiff
path: root/server/lib/api.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-06-10 18:21:28 -0400
committerJules Laplace <jules@okfoc.us>2014-06-10 18:21:28 -0400
commitb231af3e38b8f066f18031fd69b0fdb30a5e244a (patch)
treeb2d83dd7dddee517fa00d16911e98f9ca20dff42 /server/lib/api.js
parent08421d8921fcc9842ea70d2e5c6439d1154e6d73 (diff)
stub in layout editing apis
Diffstat (limited to 'server/lib/api.js')
-rw-r--r--server/lib/api.js65
1 files changed, 64 insertions, 1 deletions
diff --git a/server/lib/api.js b/server/lib/api.js
index b89b6ae..2d35f50 100644
--- a/server/lib/api.js
+++ b/server/lib/api.js
@@ -9,7 +9,8 @@ var passport = require('passport'),
upload = require('./upload'),
config = require('../../config.json'),
User = require('./schemas/User'),
- Documentation = require('./schemas/Documentation');
+ Documentation = require('./schemas/Documentation'),
+ Layout = require('./schemas/Layout');
var api = {
@@ -122,6 +123,68 @@ var api = {
res.json({ status: "OK" })
})
}
+ },
+
+ layout: {
+ index: function(req, res){
+ Layout.find({}, function(err, docs){
+ res.json(docs)
+ })
+ },
+
+ show: function(req, res){
+ Layout.findOne({ name: req.query.name }, function(err, doc){
+ if (doc) {
+ res.json(doc)
+ }
+ else {
+ var name = util.sanitize(req.query.name)
+ if (name == "new") {
+ name = ""
+ }
+ res.json({ 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)
+ delete data.new_name
+ 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") {
+ 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){
+ 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) {
+ res.json({ error: 404 })
+ return
+ }
+ Layout.remove({ name: name }, function(err){
+ res.json({ status: "OK" })
+ })
+ },
}
}