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) => `
-
`
- )
- .join('')}
-
`
+
+
+
+ ${chapters
+ .map(
+ (chapter) => `
+
`
+ )
+ .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 => {