Files
music-v2/server/api/user/tracks/contains.get.ts
T
2026-10-05 17:54:29 +02:00

23 lines
835 B
TypeScript

import { getQuery, setResponseStatus } from "h3"
import { User } from "#server/models/user"
import { defineAuthenticatedEventHandler, requireAuthenticatedUser } from "#server/utils/auth"
import { parseMongoId, validationResponse } from "#server/utils/api-validation"
export default defineAuthenticatedEventHandler(async (event) => {
const authenticatedUser = await requireAuthenticatedUser(event)
const parsedId = parseMongoId(getQuery(event).id)
if ("error" in parsedId) return validationResponse(event, parsedId.error)
const user = await User.findById(authenticatedUser._id).select("savedTracks")
if (!user) {
setResponseStatus(event, 404)
return { message: "User not found" }
}
return {
contains: user.savedTracks.some(
(savedTrack: { toString(): string }) => savedTrack.toString() === parsedId.value,
),
}
})