summaryrefslogtreecommitdiff
path: root/server/lib
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/api.js65
-rw-r--r--server/lib/auth.js5
-rw-r--r--server/lib/schemas/Documentation.js1
-rw-r--r--server/lib/schemas/Layout.js2
4 files changed, 68 insertions, 5 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" })
+ })
+ },
}
}
diff --git a/server/lib/auth.js b/server/lib/auth.js
index b710a22..018c9ad 100644
--- a/server/lib/auth.js
+++ b/server/lib/auth.js
@@ -5,6 +5,7 @@ var passport = require('passport'),
TwitterStrategy = require('passport-twitter').Strategy,
LocalStrategy = require('passport-local').Strategy,
passportSocketIo = require("passport.socketio"),
+ cookieParser = require('express').cookieParser,
crypto = require('crypto'),
_ = require('lodash'),
util = require('./util'),
@@ -33,9 +34,9 @@ var auth = {
}, auth.insertFacebookUser));
},
- initSockets: function (io, cookieParser, SessionStore) {
+ initSockets: function (io, express, SessionStore) {
io.set('authorization', passportSocketIo.authorize({
- cookieParser: express.cookieParser,
+ cookieParser: cookieParser,
passport: passport,
key: 'vvalls.sid', // the name of the cookie where express/connect stores its session_id
secret: 'flibbertigibbet', // the session_secret to parse the cookie
diff --git a/server/lib/schemas/Documentation.js b/server/lib/schemas/Documentation.js
index 0381e0b..482f609 100644
--- a/server/lib/schemas/Documentation.js
+++ b/server/lib/schemas/Documentation.js
@@ -1,6 +1,5 @@
/* jshint node: true */
-
var mongoose = require('mongoose'),
uniqueValidator = require('mongoose-unique-validator'),
_ = require('lodash'),
diff --git a/server/lib/schemas/Layout.js b/server/lib/schemas/Layout.js
index 48cd85e..f818ed2 100644
--- a/server/lib/schemas/Layout.js
+++ b/server/lib/schemas/Layout.js
@@ -27,7 +27,7 @@ var LayoutSchema = new mongoose.Schema({
type: String,
default: ""
},
- rooms: [Schema.Types.Mixed],
+ rooms: [mongoose.Schema.Types.Mixed],
user_id: { type: mongoose.Schema.ObjectId, index: true },
created_at: { type: Date },
updated_at: { type: Date },