Files

71 lines
2.3 KiB
TypeScript

import { getPayload } from 'payload'
import configPromise from '../src/payload.config'
async function run() {
const payload = await getPayload({ config: configPromise })
const mappings: Record<string, Record<string, string>> = {
pl: {
'Deklaracje podatkowe': 'sporzadzenie-deklaracji-podatkowej-einkommensteuererklarung',
'Kontrola decyzji': 'kontrola-decyzji-podatkowej-steuerbescheid',
'Ulgi i dopłaty': 'ulgi-doplaty-i-odliczenia-kindergeld-dojazdy-podwojne-gospodarstwo'
},
de: {
'Steuererklärungen': 'erstellung-der-einkommensteuererklarung',
'Steuerbescheidprüfung': 'prufung-des-steuerbescheids',
'Vergünstigungen und Zuschüsse': 'freibetrage-kindergeld-and-fahrtkosten'
}
}
const urls: Record<string, string> = {
pl: '/uslugi',
de: '/leistungen'
}
for (const locale of ['pl', 'de'] as const) {
const pages = await payload.find({
collection: 'pages',
locale,
where: { slug: { equals: 'home' } }
})
if (pages.docs.length > 0) {
const homePage = pages.docs[0]
if (homePage.layout) {
let changed = false
const newLayout = homePage.layout.map((block: any) => {
if (block.blockType === 'servicesList' && block.services) {
block.services = block.services.map((service: any) => {
const anchor = mappings[locale][service.title]
const newUrl = anchor ? `${urls[locale]}#${anchor}` : urls[locale]
if (service.linkUrl !== newUrl) {
service.linkUrl = newUrl
changed = true
}
return service
})
}
return block
})
if (changed) {
await payload.update({
collection: 'pages',
id: homePage.id,
locale,
data: { layout: newLayout }
})
}
console.log(`\nStrona ${locale.toUpperCase()} (Home) zaktualizowane linki:`)
newLayout.find((b:any) => b.blockType === 'servicesList')?.services?.forEach((s:any) => {
console.log(` - ${s.title} -> ${s.linkUrl}`)
})
}
}
}
process.exit(0)
}
run()