diff options
Diffstat (limited to 'server/lib/api.js')
| -rw-r--r-- | server/lib/api.js | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/server/lib/api.js b/server/lib/api.js deleted file mode 100644 index f840a66..0000000 --- a/server/lib/api.js +++ /dev/null @@ -1,324 +0,0 @@ -/* jshint node: true */ - -var passport = require('passport'), - Entities = require('html-entities').XmlEntities, - entities = new Entities(), - crypto = require('crypto'), - _ = require('lodash'), - util = require('./util'), - upload = require('./upload'), - config = require('../../config.json'), - User = require('./schemas/User'), - Documentation = require('./schemas/Documentation'), - Layout = require('./schemas/Layout'), - Project = require('./schemas/Project'); - -var api = { - - profile: { - show: function(req, res){ - User.findOne({ _id: req.user._id }, function(err, user){ - res.json(err || user) - }) - }, - - update: function(req, res){ - var data = util.cleanQuery(req.body) - if (data.new_password && data.new_password.length) { - if (! data.old_password || ! req.user.checkPassword(data.old_password)) { - res.json({ error: { errors: { password: { message: "Old password is incorrect" } } } }) - } - - var shasum = crypto.createHash('sha1') - shasum.update(data.new_password) - password = shasum.digest('hex'); - - req.user.password = password - } - delete data.old_password - delete data.new_password - delete data.isStaff - 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 }) - }) - } - } - }, - - - docs: { - show: function(req, res){ - Documentation.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 Documentation(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) - } - Documentation.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 - } - Documentation.remove({ name: name }, function(err){ - res.json({ status: "OK" }) - }) - } - }, - - layouts: { - index: function(req, res){ - Layout.find({}, function(err, docs){ - res.json(docs) - }) - }, - - show: function(req, res){ - Layout.findOne({ slug: req.params.slug }, function(err, doc){ - if (doc) { - res.json(doc) - return - } - else { - var name = util.sanitize(req.params.slug) - if (name == "new") { - name = "" - } - res.json({ _id: "new", name: name, isNew: true }) - } - }) - }, - - create: function(req, res){ - var data = util.cleanQuery(req.body) - data.name = util.sanitize(data.name) - data.slug = util.slugify(data.name) - data.user_id = req.user._id - 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 _id = req.body._id - if (_id == "new") { - return api.docs.create(req, res) - } - - 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 }) } - _.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 _id = req.body._id - console.log(_id) - if (! _id || ! _id.length) { - res.json({ error: 404 }) - return - } - Layout.remove({ _id: _id }, function(err){ - res.json({ status: "OK" }) - }) - }, - }, - - - projects: { - index: function(req, res){ - Project.find({}, function(err, docs){ - res.json(docs) - }) - }, - - show: function(req, res){ - Project.findOne({ slug: req.params.slug }, function(err, doc){ - if (doc) { - res.json(doc) - return - } - else { - var name = util.sanitize(req.params.slug) - if (name == "new") { - name = "" - } - res.json({ _id: "new", name: name, isNew: true }) - } - }) - }, - - create: function(req, res){ - var data = util.cleanQuery(req.body) - data.name = util.sanitize(data.name) - data.slug = util.slugify(data.name) - data.user_id = req.user._id - data.rooms = JSON.parse(data.rooms) - data.startPosition = JSON.parse(data.startPosition) - - upload.put("projects", 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 Project(data).save(function(err, doc){ - if (err || ! doc) { return res.json({ error: err }) } - res.json(doc) - }) - } - }, - - update: function(req, res){ - var _id = req.body._id - if (_id == "new") { - return api.docs.create(req, res) - } - - 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("projects", 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() { - Project.findOne({ _id: _id }, function(err, doc){ - if (err || ! doc) { return res.json({ error: err }) } - _.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 _id = req.body._id - if (! id || ! id.length) { - res.json({ error: 404 }) - return - } - Project.remove({ _id: _id }, function(err){ - res.json({ status: "OK" }) - }) - }, - } - -} - - -module.exports = api |
