From 8713f442c12dd7700a22067c5b0e22d7ea906b4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Wed, 11 Oct 2023 16:43:32 -0400 Subject: [PATCH] feat(api): create user fav management endpoint --- server/api/user/me/favs.put.ts | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 server/api/user/me/favs.put.ts diff --git a/server/api/user/me/favs.put.ts b/server/api/user/me/favs.put.ts new file mode 100644 index 0000000..35260ab --- /dev/null +++ b/server/api/user/me/favs.put.ts @@ -0,0 +1,36 @@ +import { FavPayload, 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); + const body = await readBody(ev); + await User.findByIdAndUpdate(ev.context.currentUser!._id, { + $pull: { + "favs.authors": { + $in: body.pull!.authors, + }, + "favs.stories": { + $in: body.pull!.stories, + }, + }, + }); + const nu = await User.findByIdAndUpdate( + ev.context.currentUser!._id, + { + $addToSet: { + "favs.authors": { + $each: body.pull!.authors, + }, + "favs.stories": { + $each: body.pull!.stories, + }, + }, + }, + { new: true }, + ); + return { + success: true, + data: nu?.favs, + }; +});