sheercms
Version:
Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.
97 lines (81 loc) • 2.83 kB
JavaScript
var logger = require('../logger');
var api = require('../api');
var auth = require('../auth');
var config = require('../config');
/*
callback: (err)
*/
module.exports.init = function(server, callback) {
//routes
server.get('/cms/templates/list', auth.authenticate, routeTemplateList);
server.get('/cms/templates/get', auth.authenticate, routeTemplateGet);
server.post('/cms/templates/save', auth.authenticateAdmin, routeTemplateSave);
server.post('/cms/templates/delete', auth.authenticateAdmin, routeTemplateDelete);
//load the templates into the DUST cache
api.templates.loadTemplates(function(err) {
if (err) {
if (callback) callback(err);
}
else {
if (callback) callback(null);
}
});
};
function routeTemplateList(req, res, next) {
try {
api.templates.getTemplates(false, function(err, templates) {
if (err)
res.json({ success: false, message: 'Error retrieving the templates.'});
else {
res.json({ success: true, templates: templates });
}
});
} catch(e) {
logger.error(e);
res.json({ success: false, message: 'Error retrieving the templates.'});
}
};
function routeTemplateGet(req, res, next) {
try {
var id = req.query.templateId;
api.templates.getTemplate(id, function(err, template) {
if (err)
res.json({ success: false, message: 'Error retrieving the template.'});
else
res.json({ success: true, template: template });
});
} catch(e) {
logger.error(e);
res.json({ success: false, message: 'Error retrieving the template.'});
}
};
function routeTemplateDelete(req, res, next) {
try {
var id = req.body.templateId;
api.templates.delete(id, function(err) {
if (err)
res.json({ success: false, message: err.message});
else
res.json({ success: true, message: 'Template deleted successfully.' });
});
} catch(e) {
logger.error(e);
res.json({ success: false, message: 'Error deleting the template.'});
}
};
function routeTemplateSave(req, res, next) {
try {
var json = req.body.data;
var t = JSON.parse(json);
var username = req.user.username;
api.templates.save(t, username, function(err, template) {
if (err)
res.json({ success: false, message: err.message });
else
res.json({ success: true, message: 'Template saved successfully.', template: template });
});
} catch(e) {
logger.error(e);
res.json({ success: false, message: 'Error saving the template.'});
}
};