notifications.put.ts 789 Bytes
import { z } from 'zod'
import { updateMockSettingsNotifications } from '../../utils/mock-settings'

const notificationsPayloadSchema = z.object({
  email: z.boolean(),
  desktop: z.boolean(),
  product_updates: z.boolean(),
  weekly_digest: z.boolean(),
  important_updates: z.boolean()
})

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

  if (!parsed.success) {
    return {
      success: false,
      errorCode: 'VALIDATION_ERROR',
      message: '提交的通知设置格式不正确。'
    }
  }

  const notifications = updateMockSettingsNotifications(parsed.data)

  return {
    success: true,
    errorCode: null,
    message: '通知设置已保存。',
    notifications
  }
})