diff --git a/src/routes/api/admin/index.ts b/src/routes/api/admin/index.ts index dcf5664..b47e3aa 100644 --- a/src/routes/api/admin/index.ts +++ b/src/routes/api/admin/index.ts @@ -8,6 +8,7 @@ import { notifRouter } from "./notif"; import { keysRouter } from "./keys"; import { cleanRouter } from "./clean"; import { settingsRouter } from "./settings"; +import User from "@/schemas/User"; export const adminRouter = Router() @@ -21,7 +22,7 @@ adminRouter.use('/keys', keysRouter) adminRouter.use('/clean', cleanRouter) adminRouter.use('/settings', settingsRouter) -adminRouter.get('/usearch', (req, res) => { - // TODO: Add search - res.send([req.query['q']]) +adminRouter.get('/usearch', async (req, res) => { + var results = await User.find({$text: {$search: req.query['q'].toString()}}, {uname: 1, surname: 1, fname: 1, room: 1}) + res.send(results) }) \ No newline at end of file diff --git a/src/schemas/User.ts b/src/schemas/User.ts index 669550c..ecc482f 100644 --- a/src/schemas/User.ts +++ b/src/schemas/User.ts @@ -26,4 +26,6 @@ const userSchema = new Schema({ defaultPage: {type: String, default: ""}, }) +userSchema.index({uname: "text", room: "text", fname: "text", surname: "text"}, {weights: {fname: 3, surname: 4, room: 2, uname: 1}, default_language: "none"}) + export default mongoose.model("logins", userSchema) \ No newline at end of file