feat: manage blog detail fallback media via payload
This commit is contained in:
@@ -1,12 +1,24 @@
|
||||
import 'dotenv/config'
|
||||
|
||||
import config from '@payload-config'
|
||||
import { getPayload } from 'payload'
|
||||
import { getPayload, type Payload } from 'payload'
|
||||
|
||||
import { blogDetailContent } from '@/spa/blogDetailContent'
|
||||
|
||||
const mediaByFilename = async (payload: Payload, filename: string) => {
|
||||
const result = await payload.find({
|
||||
collection: 'media',
|
||||
limit: 1,
|
||||
pagination: false,
|
||||
where: { filename: { equals: filename } },
|
||||
})
|
||||
return result.docs[0]?.id
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const payload = await getPayload({ config })
|
||||
const fallbackImage = await mediaByFilename(payload, blogDetailContent.fallbackImageFilename)
|
||||
const { fallbackImageFilename: _fallbackImageFilename, ...detailContent } = blogDetailContent
|
||||
|
||||
const posts = await payload.find({
|
||||
collection: 'posts',
|
||||
@@ -25,7 +37,8 @@ async function main() {
|
||||
context: { disableRevalidate: true },
|
||||
data: {
|
||||
detailPage: {
|
||||
...blogDetailContent,
|
||||
...detailContent,
|
||||
fallbackImage,
|
||||
metaCopy: blogDetailContent.meta,
|
||||
},
|
||||
} as never,
|
||||
|
||||
Reference in New Issue
Block a user