62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
import { getPayload } from 'payload'
|
|
import configPromise from '../src/payload.config'
|
|
|
|
async function run() {
|
|
const payload = await getPayload({ config: configPromise })
|
|
|
|
console.log("Symulacja odebrania FormData(puste pola) na backendzie (zgodnie z logiką validateSubmission)...")
|
|
|
|
const incomingData: Record<string, any> = {
|
|
name: "",
|
|
email: "",
|
|
message: "",
|
|
consent: true // Pomijamy consent
|
|
}
|
|
|
|
console.log("Dane wejściowe (z FormData):", incomingData)
|
|
|
|
const form: any = await payload.findByID({ id: 1, collection: 'forms', depth: 0 })
|
|
const fields = form.fields || []
|
|
|
|
let validationResult: any = { ok: true, cleaned: {} }
|
|
|
|
for (const field of fields) {
|
|
if (field.blockType === 'message') continue;
|
|
|
|
const value = incomingData[field.name]
|
|
const isBlank = value == null || (typeof value === 'string' && value.trim() === '') || value === false
|
|
|
|
if (field.required && isBlank) {
|
|
validationResult = { field: field.name, kind: 'required', ok: false, reason: 'invalid' }
|
|
break;
|
|
}
|
|
|
|
if (value !== undefined) {
|
|
validationResult.cleaned[field.name] = value
|
|
}
|
|
}
|
|
|
|
console.log("\\n=== Wynik validateSubmission ===")
|
|
console.log(JSON.stringify(validationResult, null, 2))
|
|
|
|
if (validationResult.ok) {
|
|
console.log("\\nTworzenie wpisu w bazie przez payload.create (symulacja zapisu)...")
|
|
const submission = await payload.create({
|
|
collection: 'form-submissions',
|
|
data: {
|
|
form: 1,
|
|
submissionData: Object.entries(validationResult.cleaned).map(([field, value]) => ({
|
|
field,
|
|
value: value == null ? '' : String(value),
|
|
})) as any,
|
|
}
|
|
})
|
|
console.log("\\nZapisano w bazie:", JSON.stringify(submission.submissionData, null, 2))
|
|
} else {
|
|
console.log("\\nFormularz odrzucony na poziomie API backendowego (validateSubmission) - rekord NIE trafił do bazy, użytkownik dostaje błąd o braku pola.")
|
|
}
|
|
|
|
process.exit(0)
|
|
}
|
|
run().catch(console.error)
|