import { messages } from "@server/constants";
import isLoggedIn from "@server/middlewareButNotReally/isLoggedIn";
import { Story } from "@models/stories";
import { Review } from "@models/stories/review";

export default eventHandler(async (ev) => {
	isLoggedIn(ev);
	const revid = parseInt(getRouterParam(ev, "revid")!);
	let c2d = await Review.findById(revid);
	if (!c2d) {
		throw createError({
			statusCode: 404,
			message: messages[404],
		});
	}
	let s2v = await Story.findById(c2d!.leftOn);
	if (!s2v)
		throw createError({
			statusCode: 400,
			message: "bad parameter",
		});
	if (
		ev.context.currentUser!._id != s2v?.author &&
		ev.context.currentUser!._id != c2d._id
	)
		throw createError({
			statusCode: 403,
			message: messages[403],
		});
	s2v.reviews += 1;
	await s2v!.save();
	await Review.findByIdAndRemove(revid);
	return {
		success: true,
	};
});