spacedeck-open/middlewares/api_helpers.js

58 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

2017-04-07 01:29:05 +02:00
'use strict';
require('../models/db');
2017-04-07 01:29:05 +02:00
var config = require('config');
const redis = require('../helpers/redis');
// FIXME TODO object.toJSON()
2017-04-07 01:29:05 +02:00
var saveAction = (actionKey, object) => {
if (object.constructor.modelName == "Space")
return;
let attr = {
action: actionKey,
space: object.space_id || object.space,
user: object.user_id || object.user,
editor_name: object.editor_name,
object: object
2017-04-07 01:29:05 +02:00
};
/*let action = new Action(attr);
2017-04-07 01:29:05 +02:00
action.save(function(err) {
if (err)
console.error("saved create action err:", err);
});*/
2017-04-07 01:29:05 +02:00
};
module.exports = (req, res, next) => {
res.header("Cache-Control", "no-cache");
req['channelId'] = req.headers['x-spacedeck-channel'];
req['spacePassword'] = req.headers['x-spacedeck-spacepassword'];
req['spaceAuth'] = req.query['spaceAuth'] || req.headers['x-spacedeck-space-auth'];
res['distributeCreate'] = function(model, object) {
if (!object) return;
redis.sendMessage("create", model, object, req.channelId);
this.status(201).json(object);
2017-04-07 01:29:05 +02:00
saveAction("create", object);
};
res['distributeUpdate'] = function(model, object) {
if (!object) return;
redis.sendMessage("update", model, object, req.channelId);
this.status(200).json(object);
2017-04-07 01:29:05 +02:00
saveAction("update", object);
};
res['distributeDelete'] = function(model, object) {
if (!object) return;
redis.sendMessage("delete", model, object, req.channelId);
2017-04-07 01:29:05 +02:00
this.sendStatus(204);
saveAction("delete", object);
};
next();
}