function insertNewsletterIntoItem()

in apps-rendering/src/newsletter.ts [199:234]


function insertNewsletterIntoItem(item: Item): Item {
	if (item.promotedNewsletter.kind === OptionKind.None) {
		return item;
	}
	const newsletterSignUp = buildBodyElement(item.promotedNewsletter.value);

	switch (item.design) {
		case ArticleDesign.Standard:
		case ArticleDesign.Gallery:
		case ArticleDesign.Audio:
		case ArticleDesign.Video:
		case ArticleDesign.Review:
		case ArticleDesign.Analysis:
		case ArticleDesign.Comment:
		case ArticleDesign.Feature:
		case ArticleDesign.Recipe:
		case ArticleDesign.MatchReport:
		case ArticleDesign.Interview:
		case ArticleDesign.Editorial:
		case ArticleDesign.Obituary: {
			return insertNewsletterIntoBody(item.body, newsletterSignUp).either(
				(errorString) => {
					logger.info(`${errorString}: ${item.webUrl}`);
					return item;
				},

				(body) => ({
					...item,
					body,
				}),
			);
		}
		default:
			return item;
	}
}