profile.put.ts 796 Bytes
import { z } from 'zod'
import { updateMockSettingsProfile } from '../../utils/mock-settings'

const profilePayloadSchema = z.object({
  name: z.string().trim().min(2),
  email: z.string().trim().email(),
  username: z.string().trim().min(2),
  avatar: z.string().trim().optional(),
  bio: z.string().trim().optional()
})

export default eventHandler(async (event) => {
  const body = await readBody(event)
  const parsed = profilePayloadSchema.safeParse(body)

  if (!parsed.success) {
    return {
      success: false,
      errorCode: 'VALIDATION_ERROR',
      message: '提交的个人资料格式不正确。'
    }
  }

  const profile = updateMockSettingsProfile(parsed.data)

  return {
    success: true,
    errorCode: null,
    message: '个人资料已保存。',
    profile
  }
})