31 lines
798 B
TypeScript
31 lines
798 B
TypeScript
import { messages } from "@server/constants";
|
|
import isAdmin from "@server/middlewareButNotReally/isAdmin";
|
|
import isLoggedIn from "@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],
|
|
},
|
|
_id: {
|
|
$nin: [idee],
|
|
},
|
|
})
|
|
.select("username _id")
|
|
.exec()
|
|
).map((a) => a.toObject());
|
|
}
|
|
return fin;
|
|
});
|