diff --git a/packages/api/src/jobs/ai/create_digest.ts b/packages/api/src/jobs/ai/create_digest.ts index 5f2ad7988..58db0768e 100644 --- a/packages/api/src/jobs/ai/create_digest.ts +++ b/packages/api/src/jobs/ai/create_digest.ts @@ -28,6 +28,7 @@ import { findUserAndPersonalization, sendPushNotifications, } from '../../services/user' +import { analytics } from '../../utils/analytics' import { enqueueSendEmail } from '../../utils/createTask' import { wordsCount } from '../../utils/helpers' import { logger } from '../../utils/logger' @@ -674,19 +675,23 @@ export const moveDigestToLibrary = async (user: User, digest: Digest) => { const chapters = digest.chapters ?? [] const html = ` -
- ${chapters - .map( - (chapter) => ` -
-

${chapter.title} (${chapter.wordCount} words)

-
- ${chapter.summary} -
-
` - ) - .join('')} -
` + + +
+ ${chapters + .map( + (chapter) => ` +
+

${chapter.title} (${chapter.wordCount} words)

+
+ ${chapter.summary} +
+
` + ) + .join('')} +
+ + ` const previewImage = await findThumbnail(chapters) @@ -716,15 +721,27 @@ const sendToChannels = async ( deduplicateChannels.map(async (channel) => { switch (channel) { case 'push': - return sendPushNotification(user.id, digest) + await sendPushNotification(user.id, digest) + break case 'email': - return sendEmail(user, digest, deduplicateChannels) + await sendEmail(user, digest, deduplicateChannels) + break case 'library': - return moveDigestToLibrary(user, digest) + await moveDigestToLibrary(user, digest) + break default: logger.error('Unknown channel', { channel }) return } + + analytics.capture({ + distinctId: user.id, + event: 'digest_created', + properties: { + channel, + digestId: digest.id, + }, + }) }) ) } diff --git a/packages/api/src/utils/analytics.ts b/packages/api/src/utils/analytics.ts index d59b1622a..fa87a3166 100644 --- a/packages/api/src/utils/analytics.ts +++ b/packages/api/src/utils/analytics.ts @@ -30,6 +30,7 @@ class PostHogClient implements AnalyticClient { properties: { ...properties, client, + env: env.server.apiEnv, }, }) } diff --git a/packages/api/src/utils/usernamePolicy.ts b/packages/api/src/utils/usernamePolicy.ts index 5cd0466a1..46f46ce14 100644 --- a/packages/api/src/utils/usernamePolicy.ts +++ b/packages/api/src/utils/usernamePolicy.ts @@ -172,7 +172,6 @@ const RESERVED_NAMES = new Set([ 'xmpp', 'yaml', 'yml', - 'digest', ]) export const validateUsername = (username: string): boolean => {