40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { execute, queryOne } from '../../../../utils/db'
|
|
|
|
interface ReviewBody {
|
|
reviewerComment?: string
|
|
}
|
|
|
|
/**
|
|
* PM 검토/코멘트 작성
|
|
* PUT /api/report/summary/[id]/review
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
const userId = getCookie(event, 'user_id')
|
|
if (!userId) {
|
|
throw createError({ statusCode: 401, message: '로그인이 필요합니다.' })
|
|
}
|
|
|
|
const summaryId = getRouterParam(event, 'id')
|
|
const body = await readBody<ReviewBody>(event)
|
|
|
|
const summary = await queryOne<any>(`
|
|
SELECT * FROM wr_aggregated_report_summary WHERE summary_id = $1
|
|
`, [summaryId])
|
|
|
|
if (!summary) {
|
|
throw createError({ statusCode: 404, message: '취합 보고서를 찾을 수 없습니다.' })
|
|
}
|
|
|
|
await execute(`
|
|
UPDATE wr_aggregated_report_summary SET
|
|
reviewer_id = $1,
|
|
reviewer_comment = $2,
|
|
reviewed_at = NOW(),
|
|
summary_status = 'REVIEWED',
|
|
updated_at = NOW()
|
|
WHERE summary_id = $3
|
|
`, [parseInt(userId), body.reviewerComment || null, summaryId])
|
|
|
|
return { success: true }
|
|
})
|