Files
music-v2/server/api/admin/track.delete.ts
T

20 lines
770 B
TypeScript

import { getQuery, setResponseStatus } from "h3"
import { Track } from "../../models/track"
import { defineAuthenticatedEventHandler, requireAuthenticatedUser } from "../../utils/auth"
import { parseMongoId, validationResponse } from "../../utils/api-validation"
import { tryCleanUploadFileOrDirectory } from "../../utils/upload-files"
export default defineAuthenticatedEventHandler(async (event) => {
await requireAuthenticatedUser(event, true)
const parsedId = parseMongoId(getQuery(event).id)
if ("error" in parsedId) return validationResponse(event, parsedId.error)
const track = await Track.findByIdAndDelete(parsedId.value)
if (!track) {
setResponseStatus(event, 404)
return {}
}
void tryCleanUploadFileOrDirectory(event, track.fileDir)
return {}
})