export async function removeRecipe()

in lib/recipes-data/src/lib/dynamo.ts [122:156]


export async function removeRecipe(
	canonicalArticleId: string,
	recipeUID: string,
	recipeChecksum?: string,
): Promise<DeleteItemCommandOutput | null> {
	const ExpressionAttributeValues: Record<string, AttributeValue> = {};
	if (recipeChecksum) {
		ExpressionAttributeValues[':ver'] = { S: recipeChecksum };
	}

	const req = new DeleteItemCommand({
		TableName,
		Key: {
			capiArticleId: { S: canonicalArticleId },
			recipeUID: { S: recipeUID },
		},
		ConditionExpression: recipeChecksum ? `recipeVersion = :ver` : undefined,
		ExpressionAttributeValues,
	});

	try {
		return client.send(req);
	} catch (err) {
		if (err instanceof ConditionalCheckFailedException) {
			console.log(
				`INFO [${canonicalArticleId}] - not removing ${recipeUID} because version does not match ${
					recipeChecksum ?? '(no version)'
				}`,
			);
			return null;
		} else {
			throw err;
		}
	}
}