Files
weeklyreport/backend/api/project/[id]/update.put.ts
2026-01-04 17:24:47 +09:00

56 lines
1.5 KiB
TypeScript

import { execute, queryOne } from '../../../utils/db'
interface UpdateProjectBody {
projectCode?: string
projectName?: string
clientName?: string
projectDescription?: string
startDate?: string
endDate?: string
contractAmount?: number
projectStatus?: string
}
/**
* 프로젝트 정보 수정
* PUT /api/project/[id]/update
*/
export default defineEventHandler(async (event) => {
const projectId = getRouterParam(event, 'id')
const body = await readBody<UpdateProjectBody>(event)
const existing = await queryOne<any>(`
SELECT * FROM wr_project_info WHERE project_id = $1
`, [projectId])
if (!existing) {
throw createError({ statusCode: 404, message: '프로젝트를 찾을 수 없습니다.' })
}
await execute(`
UPDATE wr_project_info SET
project_code = $1,
project_name = $2,
client_name = $3,
project_description = $4,
start_date = $5,
end_date = $6,
contract_amount = $7,
project_status = $8,
updated_at = NOW()
WHERE project_id = $9
`, [
body.projectCode ?? existing.project_code,
body.projectName ?? existing.project_name,
body.clientName ?? existing.client_name,
body.projectDescription ?? existing.project_description,
body.startDate ?? existing.start_date,
body.endDate ?? existing.end_date,
body.contractAmount ?? existing.contract_amount,
body.projectStatus ?? existing.project_status,
projectId
])
return { success: true }
})