Files
Verso/services/web/app/src/Features/SplitTests/SplitTestUserGetter.mjs
T
Andrew Rumble 912324f560 Convert to ESM
GitOrigin-RevId: b58b02f9e9c8d47909e95c3ade8e1bf33ed46c80
2025-11-06 09:05:47 +00:00

31 lines
718 B
JavaScript

import { callbackify } from 'node:util'
import Metrics from '@overleaf/metrics'
import UserGetter from '../User/UserGetter.mjs'
async function getUser(id, splitTestName) {
const projection = {
analyticsId: 1,
alphaProgram: 1,
betaProgram: 1,
}
if (splitTestName) {
projection[`splitTests.${splitTestName}`] = 1
} else {
projection.splitTests = 1
}
const user = await UserGetter.promises.getUser(id, projection)
Metrics.histogram(
'split_test_get_user_from_mongo_size',
JSON.stringify(user).length,
[0, 100, 500, 1000, 2000, 5000, 10000, 15000, 20000, 50000, 100000]
)
return user
}
export default {
getUser: callbackify(getUser),
promises: {
getUser,
},
}