export async function generateHybridFront()

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;
	}
}