next/server/api/story/[id]/[chapter]/reviews/index.post.ts

27 lines
663 B
TypeScript

import san from "sanitize-html";
import { storyQuerier } from "@server/dbHelpers";
import { isLoggedIn } from "@server/middlewareButNotReally";
import { Review } from "@models/stories/review";
export default eventHandler(async (ev) => {
isLoggedIn(ev);
let body = await readBody(ev);
let parent = await storyQuerier(ev);
let newReview = new Review({
text: san(body.review),
leftOn: parent._id,
author: ev.context.currentUser!._id,
replyingTo: null,
replies: [],
datePosted: new Date(),
});
await newReview.save();
parent.reviews += 1;
await parent.save();
// TODO: emails lol
return {
success: true,
data: newReview.toObject(),
};
});