mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-09-12 09:37:29 +08:00
added change displayname function
This commit is contained in:
parent
6f758ad0d5
commit
e0f64a4e2c
2 changed files with 41 additions and 0 deletions
|
|
@ -130,6 +130,44 @@ exports.reserveDisplayName = functions.https.onCall(
|
|||
}
|
||||
);
|
||||
|
||||
exports.changeDisplayName = functions.https.onCall(
|
||||
async (request, response) => {
|
||||
try {
|
||||
if (!isUsernameValid(request.name))
|
||||
return { status: -1, message: "Name not valid" };
|
||||
let taken = await db
|
||||
.collection("takenNames")
|
||||
.doc(request.name.toLowerCase())
|
||||
.get();
|
||||
taken = taken.data();
|
||||
if (taken === undefined || taken.taken === false) {
|
||||
//not taken
|
||||
let oldname = admin.auth().getUser(request.uid);
|
||||
oldname = (await oldname).displayName;
|
||||
await admin
|
||||
.auth()
|
||||
.updateUser(request.uid, { displayName: request.name });
|
||||
await db
|
||||
.collection("users")
|
||||
.doc(request.uid)
|
||||
.update({ name: request.name });
|
||||
await db.collection("takenNames").doc(request.name.toLowerCase()).set(
|
||||
{
|
||||
taken: true,
|
||||
},
|
||||
{ merge: true }
|
||||
);
|
||||
await db.collection("takenNames").doc(oldname.toLowerCase()).delete();
|
||||
return { status: 1, message: "Updated" };
|
||||
} else {
|
||||
return { status: -2, message: "Name taken." };
|
||||
}
|
||||
} catch (e) {
|
||||
return { status: -999, message: "Error: " + e.message };
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
exports.clearName = functions.auth.user().onDelete((user) => {
|
||||
db.collection("takenNames").doc(user.displayName.toLowerCase()).delete();
|
||||
db.collection("users").doc(user.uid).delete();
|
||||
|
|
|
|||
|
|
@ -27,3 +27,6 @@ export const getLeaderboard = firebase
|
|||
.functions()
|
||||
.httpsCallable("getLeaderboard");
|
||||
export const clearTagPb = firebase.functions().httpsCallable("clearTagPb");
|
||||
export const changeDisplayName = firebase
|
||||
.functions()
|
||||
.httpsCallable("changeDisplayName");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue