28 lines
777 B
TypeScript
28 lines
777 B
TypeScript
|
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;
|
||
|
});
|