Release v2.19.0: indexed content references
This commit is contained in:
1 parent
24f1603b43
commit
b59fe08298
31 files changed
+663
-237
No files matched your search
@@ -5,12 +5,25 @@ const { getDataSourceUsageMaps: getRssUsage } = require('../src/web/routes/data-
|
||||
const { getDataSourceUsageMaps: getTimetableUsage } = require('../src/web/routes/data-sources/timetables/routes');
|
||||
const { getWeatherLocationUsageIds } = require('../src/web/routes/data-sources/weather');
|
||||
const { isWeatherIconSetUsed } = require('../src/web/routes/settings/weather-icons');
|
||||
const { collectContentReferences } = require('../src/data/content-references');
|
||||
|
||||
function createPool(slideContent, templateContent) {
|
||||
const references = collectContentReferences('slide', 1, { slide: slideContent })
|
||||
.concat(collectContentReferences('template', 2, { region: templateContent }));
|
||||
return {
|
||||
async query(sql) {
|
||||
if (sql.includes('FROM c_slides')) return [[{ content_json: JSON.stringify(slideContent) }]];
|
||||
return [[{ default_content_json: JSON.stringify(templateContent) }]];
|
||||
async query(sql, params) {
|
||||
if (!sql.includes('FROM c_content_references')) throw new Error('Unexpected query: ' + sql);
|
||||
const referenceType = params[0];
|
||||
const matching = references.filter(function (reference) {
|
||||
return reference.reference_type === referenceType && (params.length < 2 || reference.reference_value === String(params[1]));
|
||||
});
|
||||
if (sql.includes('COUNT(DISTINCT')) return [[{ owner_count: matching.length ? 1 : 0 }]];
|
||||
if (sql.includes('GROUP BY reference_value')) {
|
||||
const counts = new Map();
|
||||
matching.forEach(function (reference) { counts.set(reference.reference_value, (counts.get(reference.reference_value) || 0) + 1); });
|
||||
return [Array.from(counts, ([reference_value, owner_count]) => ({ reference_value, owner_count }))];
|
||||
}
|
||||
return [Array.from(new Set(matching.map(reference => reference.reference_value)), reference_value => ({ reference_value }))];
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user