1075fec53f
* Clean the user's display name on update. The user's display name should always be clean (see for example functions/src/create-user.ts). However, change-user-info.ts does not enforce this, thus potentially allowing a malicious user to change their name to something that doesn't satisfy the rules for clean display names. Note: this cannot happen currently because all callers (in profile.tsx) clean the name. However, doing it here is good defense in depth (similar to how the userName is cleaned). * Update display name max length to 30 * Add a script to hunt down too-long display names * Make util.isProd a function * Don't access admin.firestore() on top level of utils.ts Co-authored-by: Jonas Wagner <ltlygwayh@gmail.com>
25 lines
599 B
TypeScript
25 lines
599 B
TypeScript
import * as Amplitude from '@amplitude/node'
|
|
|
|
import { DEV_CONFIG } from '../../common/envs/dev'
|
|
import { PROD_CONFIG } from '../../common/envs/prod'
|
|
|
|
import { isProd } from './utils'
|
|
|
|
const key = isProd() ? PROD_CONFIG.amplitudeApiKey : DEV_CONFIG.amplitudeApiKey
|
|
|
|
const amp = Amplitude.init(key ?? '')
|
|
|
|
export const track = async (
|
|
userId: string,
|
|
eventName: string,
|
|
eventProperties?: any,
|
|
amplitudeProperties?: Partial<Amplitude.Event>
|
|
) => {
|
|
await amp.logEvent({
|
|
event_type: eventName,
|
|
user_id: userId,
|
|
event_properties: eventProperties,
|
|
...amplitudeProperties,
|
|
})
|
|
}
|