index.patch.ts 727 Bytes
import { z } from 'zod'
import { updateMockMemberRole } from '../../../../utils/mock-settings'

const rolePayloadSchema = z.object({
  role: z.enum(['member', 'admin', 'customer'])
})

export default eventHandler(async (event) => {
  const username = getRouterParam(event, 'username')

  if (!username) {
    return {
      success: false,
      errorCode: 'VALIDATION_ERROR',
      message: '缺少成员标识。'
    }
  }

  const body = await readBody(event)
  const parsed = rolePayloadSchema.safeParse(body)

  if (!parsed.success) {
    return {
      success: false,
      errorCode: 'VALIDATION_ERROR',
      message: '角色参数不正确。'
    }
  }

  return updateMockMemberRole(username, parsed.data.role)
})