import { SubPayload } from "@client/types/form/favSub"; import { isLoggedIn } from "@server/middlewareButNotReally"; import { User } from "@models/user"; export default eventHandler(async (ev) => { isLoggedIn(ev); // note: debounced batched update const body = await readBody(ev); await User.findByIdAndUpdate(ev.context.currentUser!._id, { $pull: { "subscriptions.authors": { $in: body.pull?.authors, }, "subscriptions.bands": { $in: body.pull?.bands ?? [], }, "subscriptions.stories": { $in: body.pull?.stories ?? [], }, }, }); const nu = await User.findByIdAndUpdate( ev.context.currentUser!._id, { $addToSet: { "subscriptions.authors": { $each: body.pull?.authors ?? [], }, "subscriptions.bands": { $each: body.pull?.bands ?? [], }, "subscriptions.stories": { $each: body.pull?.stories ?? [], }, }, }, { new: true }, ); return { success: true, data: nu?.subscriptions, }; });