import { HidePayload } from "~/lib/client/types/form/favSub";
import isLoggedIn from "~/lib/server/middlewareButNotReally/isLoggedIn";
import { User } from "~/models/user";

export default eventHandler(async (ev) => {
	isLoggedIn(ev);
	const body = await readBody<HidePayload>(ev);
	await User.findByIdAndUpdate(ev.context.currentUser!._id, {
		$pull: {
			hiddenAuthors: {
				$in: body.pull?.authors || [],
			},
			hiddenBands: {
				$in: body.pull?.bands || [],
			},
		},
	});
	const nu: any = await User.findByIdAndUpdate(
		ev.context.currentUser!._id,
		{
			$addToSet: {
				hiddenAuthors: {
					$each: body.pull?.authors || [],
				},
				hiddenBands: {
					$each: body.pull?.bands || [],
				},
			},
		},
		{ new: true },
	);
	return {
		success: true,
		data: {
			hiddenBands: nu?.hiddenBands,
			hiddenAuthors: nu?.hiddenAuthors,
		},
	};
});