next/server/api/user/me/hide.put.ts

40 lines
849 B
TypeScript

import { HidePayload } from "@client/types/form/favSub";
import isLoggedIn from "@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,
},
};
});