refactor: search logic to use switch..case

This commit is contained in:
Julian Lam
2024-09-30 12:11:48 -04:00
parent 55faa8a261
commit bd76ccf08a

View File

@@ -19,14 +19,25 @@ search.search = async function (data) {
data.sortBy = data.sortBy || 'relevance'; data.sortBy = data.sortBy || 'relevance';
let result; let result;
switch (data.searchIn) {
case 'users': {
result = await user.search(data);
break;
}
case 'categories': {
result = await categories.search(data);
break;
}
case 'tags': {
result = await topics.searchAndLoadTags(data);
break;
}
default: {
if (['posts', 'titles', 'titlesposts', 'bookmarks'].includes(data.searchIn)) { if (['posts', 'titles', 'titlesposts', 'bookmarks'].includes(data.searchIn)) {
result = await searchInContent(data); result = await searchInContent(data);
} else if (data.searchIn === 'users') {
result = await user.search(data);
} else if (data.searchIn === 'categories') {
result = await categories.search(data);
} else if (data.searchIn === 'tags') {
result = await topics.searchAndLoadTags(data);
} else if (data.searchIn) { } else if (data.searchIn) {
result = await plugins.hooks.fire('filter:search.searchIn', { result = await plugins.hooks.fire('filter:search.searchIn', {
data, data,
@@ -34,6 +45,8 @@ search.search = async function (data) {
} else { } else {
throw new Error('[[error:unknown-search-filter]]'); throw new Error('[[error:unknown-search-filter]]');
} }
}
}
result.time = (process.elapsedTimeSince(start) / 1000).toFixed(2); result.time = (process.elapsedTimeSince(start) / 1000).toFixed(2);
return result; return result;