Added saved library API

This commit is contained in:
lucast committed 2026-10-05 17:54:29 +02:00
1 parent 36d05ab04f
commit 0526e83a9b
7 files changed
+107 -11

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
import { getQuery, setResponseStatus } from "h3"
import { User } from "#server/models/user"
import {
defineAuthenticatedEventHandler,
requireAuthenticatedUser,
} from "#server/utils/auth"
import { parseMongoIds, validationResponse } from "#server/utils/api-validation"
export default defineAuthenticatedEventHandler(async (event) => {
const authenticatedUser = await requireAuthenticatedUser(event)
const parsedIds = parseMongoIds(getQuery(event).ids ?? getQuery(event).id)
if ("error" in parsedIds) return validationResponse(event, parsedIds.error)
const user = await User.findById(authenticatedUser._id)
if (!user) {
setResponseStatus(event, 404)
return { message: "User not found" }
}
user.savedTracks = user.savedTracks.filter(
(savedTrack: { toString(): string }) =>
!parsedIds.value.includes(savedTrack.toString()),
)
await user.save()
return {}
})