ghostguild-org/server/api/admin/series.post.js

49 lines
No EOL
1.2 KiB
JavaScript

import Series from '../../models/series.js'
import { connectDB } from '../../utils/mongoose.js'
export default defineEventHandler(async (event) => {
try {
await connectDB()
const body = await readBody(event)
// Validate required fields
if (!body.id || !body.title || !body.description) {
throw createError({
statusCode: 400,
statusMessage: 'Series ID, title, and description are required'
})
}
// Create new series
const newSeries = new Series({
id: body.id,
title: body.title,
description: body.description,
type: body.type || 'workshop_series',
totalEvents: body.totalEvents || null,
createdBy: 'admin' // TODO: Get from authentication
})
await newSeries.save()
return {
success: true,
data: newSeries
}
} catch (error) {
console.error('Error creating series:', error)
if (error.code === 11000) {
throw createError({
statusCode: 400,
statusMessage: 'A series with this ID already exists'
})
}
throw createError({
statusCode: 500,
statusMessage: error.message || 'Failed to create series'
})
}
})