Files
payload/examples/localization/src/endpoints/seedHandler.ts
Alessio Gravili 142c504a46 refactor: improve error logging during onInit and website template seed (#10528)
This PR ensures that onInit and website template seed errors are logged
properly
2025-01-13 01:14:13 +00:00

28 lines
847 B
TypeScript

import { type PayloadHandler, commitTransaction, initTransaction } from 'payload'
import { seed as seedScript } from '@/endpoints/seed'
export const seedHandler: PayloadHandler = async (req): Promise<Response> => {
const { payload, user } = req
if (!user) {
return Response.json({ error: 'Unauthorized' }, { status: 401 })
}
try {
// Create a transaction so that all seeding happens in one transaction
await initTransaction(req)
await seedScript({ payload, req })
// Finalise transactiojn
await commitTransaction(req)
return Response.json({ success: true })
} catch (error: unknown) {
const message = error instanceof Error ? error.message : 'Unknown error'
payload.logger.error({ err: error, message: 'Error seeding data' })
return Response.json({ error: message }, { status: 500 })
}
}