sitemap refactor

v1.18.x
barisusakli 8 years ago
parent 1bee91fa22
commit 3e396a8553

@ -1,68 +1,61 @@
'use strict'; 'use strict';
var async = require('async');
var sitemap = require('../sitemap'); var sitemap = require('../sitemap');
var meta = require('../meta'); var meta = require('../meta');
var sitemapController = {}; var sitemapController = module.exports;
sitemapController.render = function (req, res, next) {
sitemap.render(function (err, tplData) {
if (err) {
return next(err);
}
req.app.render('sitemap', tplData, function (err, xml) { sitemapController.render = function (req, res, next) {
if (err) { async.waterfall([
return next(err); function (next) {
} sitemap.render(next);
},
function (tplData, next) {
req.app.render('sitemap', tplData, next);
},
function (xml) {
res.header('Content-Type', 'application/xml'); res.header('Content-Type', 'application/xml');
res.send(xml); res.send(xml);
}); },
}); ], next);
}; };
sitemapController.getPages = function (req, res, next) { sitemapController.getPages = function (req, res, next) {
if (parseInt(meta.config['feeds:disableSitemap'], 10) === 1) { sendSitemap(function (callback) {
return next(); sitemap.getPages(callback);
} }, res, next);
sitemap.getPages(function (err, xml) {
if (err) {
return next(err);
}
res.header('Content-Type', 'application/xml');
res.send(xml);
});
}; };
sitemapController.getCategories = function (req, res, next) { sitemapController.getCategories = function (req, res, next) {
if (parseInt(meta.config['feeds:disableSitemap'], 10) === 1) { sendSitemap(function (callback) {
return next(); sitemap.getCategories(callback);
} }, res, next);
sitemap.getCategories(function (err, xml) {
if (err) {
return next(err);
}
res.header('Content-Type', 'application/xml');
res.send(xml);
});
}; };
sitemapController.getTopicPage = function (req, res, next) { sitemapController.getTopicPage = function (req, res, next) {
sendSitemap(function (callback) {
sitemap.getTopicPage(parseInt(req.params[0], 10), callback);
}, res, next);
};
function sendSitemap(method, res, callback) {
if (parseInt(meta.config['feeds:disableSitemap'], 10) === 1) { if (parseInt(meta.config['feeds:disableSitemap'], 10) === 1) {
return next(); return callback();
} }
async.waterfall([
function (next) {
method(next);
},
function (xml) {
if (!xml) {
return callback();
}
sitemap.getTopicPage(parseInt(req.params[0], 10), function (err, xml) { res.header('Content-Type', 'application/xml');
if (err) { res.send(xml);
return next(err); },
} else if (!xml) { ], callback);
return next(); }
}
res.header('Content-Type', 'application/xml');
res.send(xml);
});
};
module.exports = sitemapController;

Loading…
Cancel
Save