feat(api): create an endpoint to retrieve users with the same ip address as another user

This commit is contained in:
parent 681d90dc6f
commit e8bd88e58c
Signed by: tablet
GPG Key ID: 924A5F6AF051E87C

@ -0,0 +1,27 @@
import { messages } from "~/lib/server/constants";
import isAdmin from "~/lib/server/middlewareButNotReally/isAdmin";
import isLoggedIn from "~/lib/server/middlewareButNotReally/isLoggedIn";
import { User } from "~/models/user";
export default eventHandler(async (ev) => {
isLoggedIn(ev);
isAdmin(ev);
let idee = parseInt(getRouterParam(ev, "id")!);
if (Number.isNaN(idee)) throw createError({ statusCode: 400 });
const user = await User.findById(idee);
if (!user) throw createError({ statusCode: 404, message: messages[404] });
let fin: any = {};
for (const entry of user?.ipLog) {
fin[entry.ip] = (
await User.find({
"ipLog.ip": {
$in: [entry.ip],
},
})
.select("username _id")
.exec()
).map((a) => a.toObject());
}
return fin;
});