Files

19 lines
795 B
TypeScript

export default defineEventHandler(async (event) => {
const { owner } = assertLibraryOwner(event)
const id = String(getRouterParam(event, 'id') || '')
const body = await readBody<{ folderId?: string; name?: string }>(event).catch(() => ({} as { folderId?: string; name?: string }))
const folderId = String(body?.folderId || '')
const hasName = typeof body?.name === 'string'
if (!folderId && !hasName) {
throw createError({ statusCode: 400, statusMessage: 'Choose a library folder or a new name' })
}
const track = getTrack(owner, id)
assertFolderAccess(event, track.folderId)
if (folderId) {
assertFolderExists(event, folderId)
await moveTrack(owner, id, folderId)
}
if (hasName) await renameTrack(owner, id, body.name || '')
return publicLibrary(event)
})