in lambda/rest-endpoints/src/curation.ts [192:238]
export async function generateHybridFront(
region: string,
variant: string,
territory: string | undefined,
localisationInsertionPoint: number,
overrideDate?: Date,
): Promise<FeastAppContainer[]> {
const curatedFront = await retrieveTodaysCuration(region, variant);
if (variant == 'meat-free') {
//we don't currently support localisation for meat-free
return curatedFront;
}
const curatedRecipesSet = new Set(
curatedFront.flatMap((c) => c.items).flatMap(recipeFromContainer),
);
if (!territory) {
//no territory given so we can't localise
return curatedFront;
}
const maybeLocalisation = await findRecentLocalisation(
territory,
5,
overrideDate ?? new Date(),
curatedRecipesSet,
10,
);
if (maybeLocalisation) {
if (curatedFront.length < localisationInsertionPoint) {
curatedFront.push(maybeLocalisation);
return curatedFront;
} else {
return curatedFront
.slice(0, localisationInsertionPoint)
.concat(
maybeLocalisation,
...curatedFront.slice(localisationInsertionPoint),
);
}
} else {
console.info(
`No localisation available for ${region} / ${variant} in ${territory}`,
);
return curatedFront;
}
}