From c7c55bd7b1030131533754d9f99096e4d392df00 Mon Sep 17 00:00:00 2001 From: Erik Tiekstra Date: Fri, 22 Aug 2025 09:18:52 +0000 Subject: [PATCH] Feat/SW-3287 campaign start end MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Approved-by: Matilda Landström --- .../CampaignPagesByHotelUid.graphql | 24 +++++++++++++++---- .../contentstack/campaignPage/utils.ts | 12 +++++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/packages/trpc/lib/graphql/Query/CampaignPage/CampaignPagesByHotelUid.graphql b/packages/trpc/lib/graphql/Query/CampaignPage/CampaignPagesByHotelUid.graphql index c37671640..6e841d1f5 100644 --- a/packages/trpc/lib/graphql/Query/CampaignPage/CampaignPagesByHotelUid.graphql +++ b/packages/trpc/lib/graphql/Query/CampaignPage/CampaignPagesByHotelUid.graphql @@ -2,15 +2,23 @@ #import "../../Fragments/CampaignPage/Hero.graphql" -query GetCampaignPagesByHotelUid($locale: String!, $hotelPageUid: String!) { +query GetCampaignPagesByHotelUid( + $locale: String! + $hotelPageUid: String! + $today: DateTime! +) { all_campaign_page( + locale: $locale where: { OR: [ { included_hotels: { list_1: { hotel_page: { uid: $hotelPageUid } } } } { included_hotels: { list_2: { hotel_page: { uid: $hotelPageUid } } } } ] + AND: [ + { OR: [{ startdate: null }, { startdate_lte: $today }] } + { OR: [{ enddate: null }, { enddate_gte: $today }] } + ] } - locale: $locale ) { items { heading @@ -28,15 +36,23 @@ query GetCampaignPagesByHotelUid($locale: String!, $hotelPageUid: String!) { } } -query GetCampaignPagesByHotelUidRefs($locale: String!, $hotelPageUid: String!) { +query GetCampaignPagesByHotelUidRefs( + $locale: String! + $hotelPageUid: String! + $today: DateTime! +) { all_campaign_page( + locale: $locale where: { OR: [ { included_hotels: { list_1: { hotel_page: { uid: $hotelPageUid } } } } { included_hotels: { list_2: { hotel_page: { uid: $hotelPageUid } } } } ] + AND: [ + { OR: [{ startdate: null }, { startdate_lte: $today }] } + { OR: [{ enddate: null }, { enddate_gte: $today }] } + ] } - locale: $locale ) { items { ...CampaignPageRef diff --git a/packages/trpc/lib/routers/contentstack/campaignPage/utils.ts b/packages/trpc/lib/routers/contentstack/campaignPage/utils.ts index a8ce42ab1..9b61675ba 100644 --- a/packages/trpc/lib/routers/contentstack/campaignPage/utils.ts +++ b/packages/trpc/lib/routers/contentstack/campaignPage/utils.ts @@ -1,3 +1,4 @@ +import { dt } from "@scandic-hotels/common/dt" import { createCounter } from "@scandic-hotels/common/telemetry" import { notFound } from "../../../errors" @@ -103,6 +104,7 @@ export async function getCampaignPagesByHotelPageUid( hotelPageUid: string, lang: Lang ) { + const today = dt().format("YYYY-MM-DD") const getCampaignPagesByHotelUidRefsCounter = createCounter( "trpc.contentstack", "campaignPage.byHotelUid.get.refs" @@ -111,6 +113,7 @@ export async function getCampaignPagesByHotelPageUid( getCampaignPagesByHotelUidRefsCounter.init({ lang, hotelPageUid, + today, }) metricsGetCampaignPagesByHotelUidRefs.start() @@ -120,9 +123,14 @@ export async function getCampaignPagesByHotelPageUid( { locale: lang, hotelPageUid, + today, }, { - key: generateRefsResponseTag(lang, hotelPageUid, "hotel_page_campaigns"), + key: generateRefsResponseTag( + lang, + `${hotelPageUid}-${today}`, + "hotel_page_campaigns" + ), ttl: "max", } ) @@ -155,6 +163,7 @@ export async function getCampaignPagesByHotelPageUid( getCampaignPagesByHotelUidCounter.init({ lang, hotelPageUid, + today, }) metricsGetCampaignPagesByHotelUid.start() @@ -164,6 +173,7 @@ export async function getCampaignPagesByHotelPageUid( { locale: lang, hotelPageUid, + today, }, { key: tags,