export async function notifyFaciaTool()

in lambda/facia-responder/src/facia-notifications.ts [26:59]


export async function notifyFaciaTool(
	event: PublicationStatusEvent,
	faciaPublicationStatusTopicArn: string,
	faciaPublicationStatusRoleArn: string,
): Promise<void> {
	const payload = JSON.stringify({ event } as PublicationStatusEventEnvelope);

	console.log(
		`Publishing publish event to SNS: ${payload} to ${faciaPublicationStatusTopicArn} via ${faciaPublicationStatusRoleArn}`,
	);

	const sns = new SNSClient({
		region: 'eu-west-1',
		credentials: fromTemporaryCredentials({
			params: {
				RoleArn: faciaPublicationStatusRoleArn,
				RoleSessionName: 'recipes-backend-assume-role-access-for-sns',
			},
		}),
	});

	try {
		const sendStatus = await sns.send(
			new PublishCommand({
				TopicArn: faciaPublicationStatusTopicArn,
				Message: payload,
			}),
		);

		console.log(`SNS status publish response: ${JSON.stringify(sendStatus)}`);
	} catch (e) {
		console.error(`Failed to publish to SNS: ${getErrorMessage(e)}`);
	}
}