feat(server): awaitable track calls (#1493)

This commit is contained in:
Kristaps Fabians Geikins
2023-03-30 15:54:24 +03:00
committed by GitHub
parent aee6de9ee0
commit 5d5c0e012f
2 changed files with 18 additions and 10 deletions
+1 -1
View File
@@ -76,7 +76,7 @@ module.exports = async (app) => {
const userId = req.user.email ? resolveMixpanelUserId(req.user.email) : null
const isInvite = !!req.user.isInvite
if (userId) {
mixpanel({ mixpanelUserId: userId }).track('Sign Up', {
await mixpanel({ mixpanelUserId: userId }).track('Sign Up', {
isInvite
})
}
@@ -53,7 +53,7 @@ export function mixpanel(params: { mixpanelUserId: Optional<string> }) {
})
return {
track: (eventName: string, extraProperties?: Record<string, unknown>) => {
track: async (eventName: string, extraProperties?: Record<string, unknown>) => {
const payload = {
...getUserIdentificationProperties(),
...getBaseTrackingProperties(),
@@ -62,15 +62,23 @@ export function mixpanel(params: { mixpanelUserId: Optional<string> }) {
const client = getClient()
if (client) {
mixpanelLogger.info(
{
eventName,
payload
},
'Mixpanel track() invoked'
)
client.track(eventName, payload)
return new Promise<void>((resolve, reject) => {
client.track(eventName, payload, (err) => {
mixpanelLogger.info(
{
eventName,
payload,
err: err || false
},
'Mixpanel track() invoked'
)
if (err) return reject(err)
resolve()
})
})
}
return false
}
}
}