Files
weeklyreport/backend/api/feedback/create.post.ts
2026-01-05 03:09:11 +09:00

39 lines
1.1 KiB
TypeScript

import { query, queryOne } from '../../utils/db'
/**
* 개선의견 작성
* POST /api/feedback/create
*/
export default defineEventHandler(async (event) => {
const userId = getCookie(event, 'user_id')
if (!userId) {
throw createError({ statusCode: 401, message: '로그인이 필요합니다.' })
}
const body = await readBody<{
category: string
content: string
}>(event)
if (!body.category || !body.content?.trim()) {
throw createError({ statusCode: 400, message: '카테고리와 내용을 입력해주세요.' })
}
const validCategories = ['FEATURE', 'UI', 'BUG', 'ETC']
if (!validCategories.includes(body.category)) {
throw createError({ statusCode: 400, message: '올바른 카테고리를 선택해주세요.' })
}
const result = await queryOne<any>(`
INSERT INTO wr_feedback (author_id, category, content)
VALUES ($1, $2, $3)
RETURNING feedback_id
`, [userId, body.category, body.content.trim()])
return {
success: true,
feedbackId: result.feedback_id,
message: '의견이 등록되었습니다.'
}
})