Files
web/packages/trpc/lib/routers/contentstack/promoCampaignPage/utils.ts
Linus Flood acdc3dcec1 Merged in fix/book-453-linkconnection (pull request #2972)
fix(BOOK-453): avoid linkConnection invalid

* fix(BOOK-453): avoid linkConnection invalid

* test

* test

* test

* Merge master
2025-10-22 12:39:17 +00:00

46 lines
1.3 KiB
TypeScript

import {
PromoCampaignPageEnum,
type PromoCampaignPageRefs,
} from "../../../types/promoCampaignPage"
import { generateTag, generateTagsFromSystem } from "../../../utils/generateTag"
import type { Lang } from "@scandic-hotels/common/constants/language"
import type { System } from "../schemas/system"
export function generatePageTags(
validatedData: PromoCampaignPageRefs,
lang: Lang
): string[] {
const connections = getConnections(validatedData)
return [
generateTagsFromSystem(lang, connections),
generateTag(lang, validatedData.promo_campaign_page.system.uid),
].flat()
}
export function getConnections({ promo_campaign_page }: PromoCampaignPageRefs) {
const connections: System["system"][] = [promo_campaign_page.system]
if (promo_campaign_page.blocks) {
promo_campaign_page.blocks.forEach((block) => {
switch (block.__typename) {
case PromoCampaignPageEnum.ContentStack.blocks.Accordion: {
if (block.accordion.length) {
connections.push(...block.accordion.filter((c) => !!c))
}
break
}
case PromoCampaignPageEnum.ContentStack.blocks.Content:
{
if (block?.content?.length) {
connections.push(...block.content)
}
}
break
}
})
}
return connections
}