Migrated read APIs to Nitro

This commit is contained in:
lucast committed 2026-09-29 00:34:50 +02:00
1 parent eb4e9f0700
commit ee5809a489
26 files changed
+558

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
import { requireAuthenticatedUser } from "../../utils/auth"
export default defineEventHandler(async (event) => {
return await requireAuthenticatedUser(event)
})
+15
View File
@@ -0,0 +1,15 @@
import { User } from "../../models/user"
import { requireAuthenticatedUser } from "../../utils/auth"
import { setResponseStatus } from "h3"
export default defineEventHandler(async (event) => {
const authenticatedUser = await requireAuthenticatedUser(event)
const user = await User.findById(authenticatedUser._id).populate("savedTracks")
if (!user) {
setResponseStatus(event, 404)
return { message: "User not found" }
}
return user.savedTracks
})
+26
View File
@@ -0,0 +1,26 @@
import { getQuery, setResponseStatus } from "h3"
import mongoose, { type ObjectId } from "mongoose"
import { User } from "../../models/user"
import { requireAuthenticatedUser } from "../../utils/auth"
import { parseMongoId, validationResponse } from "../../utils/api-validation"
export default defineEventHandler(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)
if (!user) {
setResponseStatus(event, 404)
return { message: "User not found" }
}
// Preserve the legacy comparison behavior and empty-object response.
if ((user.savedTracks as ObjectId[]).includes(parsedId.value as unknown as ObjectId)) {
return {}
}
user.savedTracks.push(new mongoose.Types.ObjectId(parsedId.value))
await user.save()
return {}
})