Feat/SW-3287 campaign start end

Approved-by: Matilda Landström
This commit is contained in:
Erik Tiekstra
2025-08-22 09:18:52 +00:00
parent ce3b7a6a49
commit c7c55bd7b1
2 changed files with 31 additions and 5 deletions

View File

@@ -2,15 +2,23 @@
#import "../../Fragments/CampaignPage/Hero.graphql" #import "../../Fragments/CampaignPage/Hero.graphql"
query GetCampaignPagesByHotelUid($locale: String!, $hotelPageUid: String!) { query GetCampaignPagesByHotelUid(
$locale: String!
$hotelPageUid: String!
$today: DateTime!
) {
all_campaign_page( all_campaign_page(
locale: $locale
where: { where: {
OR: [ OR: [
{ included_hotels: { list_1: { hotel_page: { uid: $hotelPageUid } } } } { included_hotels: { list_1: { hotel_page: { uid: $hotelPageUid } } } }
{ included_hotels: { list_2: { 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 { items {
heading 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( all_campaign_page(
locale: $locale
where: { where: {
OR: [ OR: [
{ included_hotels: { list_1: { hotel_page: { uid: $hotelPageUid } } } } { included_hotels: { list_1: { hotel_page: { uid: $hotelPageUid } } } }
{ included_hotels: { list_2: { 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 { items {
...CampaignPageRef ...CampaignPageRef

View File

@@ -1,3 +1,4 @@
import { dt } from "@scandic-hotels/common/dt"
import { createCounter } from "@scandic-hotels/common/telemetry" import { createCounter } from "@scandic-hotels/common/telemetry"
import { notFound } from "../../../errors" import { notFound } from "../../../errors"
@@ -103,6 +104,7 @@ export async function getCampaignPagesByHotelPageUid(
hotelPageUid: string, hotelPageUid: string,
lang: Lang lang: Lang
) { ) {
const today = dt().format("YYYY-MM-DD")
const getCampaignPagesByHotelUidRefsCounter = createCounter( const getCampaignPagesByHotelUidRefsCounter = createCounter(
"trpc.contentstack", "trpc.contentstack",
"campaignPage.byHotelUid.get.refs" "campaignPage.byHotelUid.get.refs"
@@ -111,6 +113,7 @@ export async function getCampaignPagesByHotelPageUid(
getCampaignPagesByHotelUidRefsCounter.init({ getCampaignPagesByHotelUidRefsCounter.init({
lang, lang,
hotelPageUid, hotelPageUid,
today,
}) })
metricsGetCampaignPagesByHotelUidRefs.start() metricsGetCampaignPagesByHotelUidRefs.start()
@@ -120,9 +123,14 @@ export async function getCampaignPagesByHotelPageUid(
{ {
locale: lang, locale: lang,
hotelPageUid, hotelPageUid,
today,
}, },
{ {
key: generateRefsResponseTag(lang, hotelPageUid, "hotel_page_campaigns"), key: generateRefsResponseTag(
lang,
`${hotelPageUid}-${today}`,
"hotel_page_campaigns"
),
ttl: "max", ttl: "max",
} }
) )
@@ -155,6 +163,7 @@ export async function getCampaignPagesByHotelPageUid(
getCampaignPagesByHotelUidCounter.init({ getCampaignPagesByHotelUidCounter.init({
lang, lang,
hotelPageUid, hotelPageUid,
today,
}) })
metricsGetCampaignPagesByHotelUid.start() metricsGetCampaignPagesByHotelUid.start()
@@ -164,6 +173,7 @@ export async function getCampaignPagesByHotelPageUid(
{ {
locale: lang, locale: lang,
hotelPageUid, hotelPageUid,
today,
}, },
{ {
key: tags, key: tags,