From c9574dfc290390e8de5c4aa742f5a83acfef7da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Tue, 3 Oct 2023 00:30:22 -0400 Subject: [PATCH] refactor(server/utils): move `listQuerier` to separate database helper folder --- lib/server/dbHelpers/listQuerier.ts | 30 +++++++++++++++++++++++++++++ lib/server/listQuerier.ts | 23 ---------------------- 2 files changed, 30 insertions(+), 23 deletions(-) create mode 100644 lib/server/dbHelpers/listQuerier.ts delete mode 100644 lib/server/listQuerier.ts diff --git a/lib/server/dbHelpers/listQuerier.ts b/lib/server/dbHelpers/listQuerier.ts new file mode 100644 index 0000000..6dc221a --- /dev/null +++ b/lib/server/dbHelpers/listQuerier.ts @@ -0,0 +1,30 @@ +import { Band } from "~/models/band"; +import { Challenge } from "~/models/challenges/gen"; +import { Story } from "~/models/stories"; + +export default async function (query, context, limit?: number, sort?) { + query["chapters.hidden"] = false; + if (context.currentUser) { + if (!query.author) query.author = {}; + if (!query["chapters.bands"]) query["chapters.bands"] = {}; + query["chapters.bands"]["$nin"] = context.currentUser.hidden_bands; + query["author"]["$nin"] = context.currentUser.hidden_authors; + } + query["ficmas"] = { + $nin: context.ficmasarray_raw.map((a) => a._id), + }; + console.log(query); + let stories = await Story.find(query, null) + .collation({ locale: "en" }) + .sort(sort ? sort : { "chapters.posted": -1 }) + .populate({ + path: "ficmas", + populate: { path: "wisher", model: "User", select: "username _id" }, + }) + .populate("chapters.bands") + .populate({ path: "challenge", model: Challenge }) + .populate("author", "username _id") + .limit(limit || Infinity) + .exec(); + return stories.filter((a) => a.author != null); +} diff --git a/lib/server/listQuerier.ts b/lib/server/listQuerier.ts deleted file mode 100644 index 210a6cd..0000000 --- a/lib/server/listQuerier.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Band } from "~/models/band" -import { Challenge } from "~/models/challenges/gen" -import { Story } from "~/models/stories" - -export default async function(query, context, limit?: number, sort?) { - query["chapters.hidden"] = false - if(context.currentUser) { - if(!query.author) query.author = {} - if(!query["chapters.bands"]) query["chapters.bands"] = {} - query["chapters.bands"]["$nin"] = context.currentUser.hidden_bands - query["author"]["$nin"] = context.currentUser.hidden_authors - } - query["ficmas"] = { - "$nin": context.ficmasarray_raw.map(a => a._id) - }; - console.log(query) - let stories = await Story.find(query, null).collation({locale: "en"}).sort(sort ? sort : {"chapters.posted": -1}) - .populate({path: 'ficmas', populate: {path: 'wisher', model: 'User', select: 'username _id'}}).populate("chapters.bands") - .populate({path: "challenge", model: Challenge}).populate('author', 'username _id') - .limit(limit || Infinity) - .exec(); - return stories.filter(a => a.author != null) -} \ No newline at end of file