feat: allow custom req.query.filter on /unread /recent

This commit is contained in:
Barış Soner Uşaklı
2020-09-13 19:41:39 -04:00
parent a8e18fdbe6
commit de824007d9
4 changed files with 22 additions and 35 deletions

View File

@@ -14,14 +14,10 @@ const helpers = require('./helpers');
const unreadController = module.exports;
unreadController.get = async function (req, res, next) {
unreadController.get = async function (req, res) {
const cid = req.query.cid;
const filter = req.query.filter || '';
const filterData = await plugins.fireHook('filter:unread.getValidFilters', { filters: { ...helpers.validFilters } });
if (!filterData.filters[filter]) {
return next();
}
const [watchedCategories, userSettings, isPrivileged] = await Promise.all([
getWatchedCategories(req.uid, cid, filter),
user.getSettings(req.uid),
@@ -52,7 +48,7 @@ unreadController.get = async function (req, res, next) {
data.showSelect = true;
data.showTopicTools = isPrivileged;
data.categories = watchedCategories.categories;
data.allCategoriesUrl = 'unread' + helpers.buildQueryString('', filter, '');
data.allCategoriesUrl = 'unread' + helpers.buildQueryString(req.query, 'cid', '');
data.selectedCategory = watchedCategories.selectedCategory;
data.selectedCids = watchedCategories.selectedCids;
if (req.originalUrl.startsWith(nconf.get('relative_path') + '/api/unread') || req.originalUrl.startsWith(nconf.get('relative_path') + '/unread')) {
@@ -81,10 +77,6 @@ async function getWatchedCategories(uid, cid, filter) {
unreadController.unreadTotal = async function (req, res, next) {
const filter = req.query.filter || '';
try {
const data = await plugins.fireHook('filter:unread.getValidFilters', { filters: { ...helpers.validFilters } });
if (!data.filters[filter]) {
return next();
}
const unreadCount = await topics.getTotalUnread(req.uid, filter);
res.json(unreadCount);
} catch (err) {