Merge pull request #531 from omnivore-app/fix/saving-analytics
Add more detailed analytics for saving. Remove intercom events
This commit is contained in:
@ -66,7 +66,6 @@ import { WithDataSourcesContext } from '../types'
|
||||
|
||||
import { parseSearchQuery } from '../../utils/search'
|
||||
import { createPageSaveRequest } from '../../services/create_page_save_request'
|
||||
import { createIntercomEvent } from '../../utils/intercom'
|
||||
import { analytics } from '../../utils/analytics'
|
||||
import { env } from '../../env'
|
||||
|
||||
@ -144,7 +143,6 @@ export const createArticleResolver = authorized<
|
||||
env: env.server.apiEnv,
|
||||
},
|
||||
})
|
||||
await createIntercomEvent('link-saved', uid)
|
||||
|
||||
const user = userDataToUser(await models.user.get(uid))
|
||||
try {
|
||||
@ -424,7 +422,6 @@ export const getArticleResolver: ResolverFn<
|
||||
env: env.server.apiEnv,
|
||||
},
|
||||
})
|
||||
await createIntercomEvent('get-article', claims.uid)
|
||||
|
||||
// We allow the backend to use the ID instead of a slug to fetch the article
|
||||
const page =
|
||||
@ -485,8 +482,6 @@ export const getArticlesResolver = authorized<
|
||||
},
|
||||
})
|
||||
|
||||
await createIntercomEvent('get_articles', claims.uid)
|
||||
|
||||
const [pages, totalCount] = (await searchPages(
|
||||
{
|
||||
from: Number(startCursor),
|
||||
@ -848,8 +843,6 @@ export const searchResolver = authorized<
|
||||
},
|
||||
})
|
||||
|
||||
await createIntercomEvent('search', claims.uid)
|
||||
|
||||
let results: (SearchItemData | Page)[]
|
||||
let totalCount: number
|
||||
|
||||
|
||||
@ -11,16 +11,26 @@ import {
|
||||
} from '../../generated/graphql'
|
||||
import { authorized, pageToArticleSavingRequest } from '../../utils/helpers'
|
||||
import { createPageSaveRequest } from '../../services/create_page_save_request'
|
||||
import { createIntercomEvent } from '../../utils/intercom'
|
||||
import { getPageById } from '../../elastic/pages'
|
||||
import { isErrorWithCode } from '../user'
|
||||
import { analytics } from '../../utils/analytics'
|
||||
import { env } from '../../env'
|
||||
|
||||
export const createArticleSavingRequestResolver = authorized<
|
||||
CreateArticleSavingRequestSuccess,
|
||||
CreateArticleSavingRequestError,
|
||||
MutationCreateArticleSavingRequestArgs
|
||||
>(async (_, { input: { url } }, { models, claims, pubsub }) => {
|
||||
await createIntercomEvent('link-save-request', claims.uid)
|
||||
analytics.track({
|
||||
userId: claims.uid,
|
||||
event: 'link_saved',
|
||||
properties: {
|
||||
url: url,
|
||||
method: 'article_saving_request',
|
||||
env: env.server.apiEnv,
|
||||
},
|
||||
})
|
||||
|
||||
try {
|
||||
const request = await createPageSaveRequest(claims.uid, url, models, pubsub)
|
||||
return {
|
||||
|
||||
@ -10,7 +10,8 @@ import { savePage } from '../../services/save_page'
|
||||
import { saveUrl } from '../../services/save_url'
|
||||
import { saveFile } from '../../services/save_file'
|
||||
import { authorized, userDataToUser } from '../../utils/helpers'
|
||||
import { createIntercomEvent } from '../../utils/intercom'
|
||||
import { analytics } from '../../utils/analytics'
|
||||
import { env } from '../../env'
|
||||
|
||||
export const savePageResolver = authorized<
|
||||
SaveSuccess,
|
||||
@ -21,7 +22,16 @@ export const savePageResolver = authorized<
|
||||
models,
|
||||
claims: { uid },
|
||||
} = ctx
|
||||
await createIntercomEvent('link-saved', uid)
|
||||
analytics.track({
|
||||
userId: uid,
|
||||
event: 'link_saved',
|
||||
properties: {
|
||||
url: input.url,
|
||||
method: 'page',
|
||||
source: input.source,
|
||||
env: env.server.apiEnv,
|
||||
},
|
||||
})
|
||||
|
||||
const user = userDataToUser(await models.user.get(uid))
|
||||
if (!user) {
|
||||
@ -44,7 +54,17 @@ export const saveUrlResolver = authorized<
|
||||
models,
|
||||
claims: { uid },
|
||||
} = ctx
|
||||
await createIntercomEvent('link-saved', uid)
|
||||
|
||||
analytics.track({
|
||||
userId: uid,
|
||||
event: 'link_saved',
|
||||
properties: {
|
||||
url: input.url,
|
||||
method: 'url',
|
||||
source: input.source,
|
||||
env: env.server.apiEnv,
|
||||
},
|
||||
})
|
||||
|
||||
const user = userDataToUser(await models.user.get(uid))
|
||||
if (!user) {
|
||||
@ -63,7 +83,17 @@ export const saveFileResolver = authorized<
|
||||
models,
|
||||
claims: { uid },
|
||||
} = ctx
|
||||
await createIntercomEvent('link-saved', uid)
|
||||
|
||||
analytics.track({
|
||||
userId: uid,
|
||||
event: 'link_saved',
|
||||
properties: {
|
||||
url: input.url,
|
||||
method: 'file',
|
||||
source: input.source,
|
||||
env: env.server.apiEnv,
|
||||
},
|
||||
})
|
||||
|
||||
const user = userDataToUser(await models.user.get(uid))
|
||||
if (!user) {
|
||||
|
||||
@ -19,7 +19,7 @@ import express from 'express'
|
||||
import axios from 'axios'
|
||||
import { env } from '../../env'
|
||||
import url from 'url'
|
||||
import { createIntercomEvent, IntercomClient } from '../../utils/intercom'
|
||||
import { IntercomClient } from '../../utils/intercom'
|
||||
import { kx } from '../../datalayer/knex_config'
|
||||
import UserModel from '../../datalayer/user'
|
||||
import { buildLogger } from '../../utils/logger'
|
||||
@ -333,10 +333,8 @@ export function authRouter() {
|
||||
|
||||
if (env.server.apiEnv && !env.dev.isLocal && IntercomClient) {
|
||||
if (newUser) {
|
||||
await createIntercomEvent('signed-up', user.id)
|
||||
redirect(res)
|
||||
} else {
|
||||
await createIntercomEvent('logged-in', user.id)
|
||||
redirect(res)
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -23,7 +23,7 @@ export function AddLinkModal(props: AddLinkModalProps): JSX.Element {
|
||||
const [link, setLink] = useState('')
|
||||
|
||||
const handleLinkSubmission = useCallback(async (link: string) => {
|
||||
const result = await createArticleFromURLMutation({ url: link })
|
||||
const result = await saveUrlMutation(link)
|
||||
// const result = await saveUrlMutation(link)
|
||||
if (result && result.jobId) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
|
||||
Reference in New Issue
Block a user