import { SubPayload } 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); // 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, }; });