25 lines
999 B
TypeScript
25 lines
999 B
TypeScript
import { execute, queryOne, query } from '../../../utils/db'
|
|
|
|
/**
|
|
* VCS 서버 삭제
|
|
* DELETE /api/vcs-server/[id]/delete
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
const serverId = Number(getRouterParam(event, 'id'))
|
|
|
|
const existing = await queryOne('SELECT * FROM wr_vcs_server WHERE server_id = $1', [serverId])
|
|
if (!existing) {
|
|
throw createError({ statusCode: 404, message: 'VCS 서버를 찾을 수 없습니다.' })
|
|
}
|
|
|
|
// 연결된 계정이 있는지 확인
|
|
const accounts = await query('SELECT COUNT(*) as cnt FROM wr_employee_vcs_account WHERE server_id = $1', [serverId])
|
|
if (parseInt(accounts[0]?.cnt) > 0) {
|
|
throw createError({ statusCode: 400, message: '연결된 VCS 계정이 있어 삭제할 수 없습니다. 먼저 계정을 삭제하거나 비활성화해주세요.' })
|
|
}
|
|
|
|
await execute('DELETE FROM wr_vcs_server WHERE server_id = $1', [serverId])
|
|
|
|
return { success: true, message: 'VCS 서버가 삭제되었습니다.' }
|
|
})
|