Files
ExecuBoard/app/api/users/[id]/route.ts
2025-08-01 01:19:19 +08:00

62 lines
1.4 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { userService } from '@/lib/database'
// 更新用戶
export async function PUT(
request: NextRequest,
{ params }: { params: { id: string } }
) {
try {
const body = await request.json()
const { name, email, role, avatar_url } = body
// 驗證必填欄位
if (!name || !email || !role) {
return NextResponse.json(
{ error: '姓名、電子郵件和角色為必填欄位' },
{ status: 400 }
)
}
// 驗證角色
const validRoles = ['executive', 'manager', 'hr']
if (!validRoles.includes(role)) {
return NextResponse.json(
{ error: '無效的角色類型' },
{ status: 400 }
)
}
const updatedUser = await userService.updateUser(params.id, {
name,
email,
role,
avatar_url
})
return NextResponse.json(updatedUser)
} catch (error) {
console.error('更新用戶失敗:', error)
return NextResponse.json(
{ error: '更新用戶失敗' },
{ status: 500 }
)
}
}
// 刪除用戶
export async function DELETE(
request: NextRequest,
{ params }: { params: { id: string } }
) {
try {
await userService.deleteUser(params.id)
return NextResponse.json({ message: '用戶刪除成功' })
} catch (error) {
console.error('刪除用戶失敗:', error)
return NextResponse.json(
{ error: '刪除用戶失敗' },
{ status: 500 }
)
}
}