e41d0c76fb
refs #9192, refs #5091 - Moved all url generation into generate-feed.js, so we can see as much data processing as possible in a single place. - Refactored the way res.locals were used, to be more like how express uses them prior to rendering - Removed a bunch of code & tests todo with context for RSS - I can't see any way that'd be used, unless we switched the rendering to use a template. - moved the RSS rendering to be part of the service, not controller - updated the tests significantly Note: RSS generate-feed has a complete duplication of the code used in the excerpt helper in order to create an item description
17 lines
513 B
JavaScript
17 lines
513 B
JavaScript
var crypto = require('crypto'),
|
|
generateFeed = require('./generate-feed'),
|
|
feedCache = {};
|
|
|
|
module.exports.getXML = function getFeedXml(baseUrl, data) {
|
|
var dataHash = crypto.createHash('md5').update(JSON.stringify(data)).digest('hex');
|
|
if (!feedCache[baseUrl] || feedCache[baseUrl].hash !== dataHash) {
|
|
// We need to regenerate
|
|
feedCache[baseUrl] = {
|
|
hash: dataHash,
|
|
xml: generateFeed(baseUrl, data)
|
|
};
|
|
}
|
|
|
|
return feedCache[baseUrl].xml;
|
|
};
|