Files
music-v2/server/api/genres/random.get.ts
T
2026-09-29 00:34:50 +02:00

15 lines
533 B
TypeScript

import { Genre } from "../../models/genre"
import { parseNumber, validationResponse } from "../../utils/api-validation"
import { requireAuthenticatedUser } from "../../utils/auth"
export default defineEventHandler(async (event) => {
await requireAuthenticatedUser(event)
const { limit: rawLimit } = getQuery(event)
const limit = parseNumber(rawLimit, 10, 1)
if ("error" in limit) return validationResponse(event, limit.error)
const genres = await Genre.aggregate([{ $sample: { size: limit.value || 10 } }])
return genres
})