import { directus } from '~~/server/utils/directus'; import { readFileSync } from 'node:fs'; import path from 'node:path'; export default defineEventHandler(async (event) => { const id = getRouterParam(event, 'id'); if (!id) throw createError({ statusCode: 400, statusMessage: 'Product ID is required', }); const query = readFileSync(path.resolve('graphql/product.graphql'), 'utf-8'); const locale = getHeader(event, 'x-locale') || 'zh-CN'; const data = await directus.query<{ products_by_id: Product }>(query, { id: id, locale: locale, }); const product = data?.products_by_id; if (!product || product.status === 'archived') { throw createError({ statusCode: 404, statusMessage: 'Product not found' }); } return product; });