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;
});
