MCPcopy Create free account
hub / github.com/monkeytypegame/monkeytype / resetUser

Function resetUser

backend/src/api/controllers/user.ts:323–359  ·  view source on GitHub ↗
(req: MonkeyRequest)

Source from the content-addressed store, hash-verified

321}
322
323export async function resetUser(req: MonkeyRequest): Promise<MonkeyResponse> {
324 const { uid } = req.ctx.decodedToken;
325
326 const userInfo = await UserDAL.getPartialUser(uid, "reset user", [
327 "banned",
328 "discordId",
329 "email",
330 "name",
331 ]);
332 if (userInfo.banned) {
333 throw new MonkeyError(403, "Banned users cannot reset their account");
334 }
335
336 const promises = [
337 UserDAL.resetUser(uid),
338 deleteAllApeKeys(uid),
339 deleteAllPresets(uid),
340 deleteAllResults(uid),
341 deleteConfig(uid),
342 purgeUserFromDailyLeaderboards(
343 uid,
344 req.ctx.configuration.dailyLeaderboards,
345 ),
346 purgeUserFromXpLeaderboards(
347 uid,
348 req.ctx.configuration.leaderboards.weeklyXp,
349 ),
350 ];
351
352 if (userInfo.discordId !== undefined && userInfo.discordId !== "") {
353 promises.push(GeorgeQueue.unlinkDiscord(userInfo.discordId, uid));
354 }
355 await Promise.all(promises);
356 void addImportantLog("user_reset", `${userInfo.email} ${userInfo.name}`, uid);
357
358 return new MonkeyResponse("User reset", null);
359}
360
361export async function updateName(
362 req: MonkeyRequest<undefined, UpdateUserNameRequest>,

Callers

nothing calls this directly

Calls 8

deleteAllApeKeysFunction · 0.90
deleteAllPresetsFunction · 0.90
deleteConfigFunction · 0.90
addImportantLogFunction · 0.90
pushMethod · 0.80
unlinkDiscordMethod · 0.80

Tested by

no test coverage detected