This commit is contained in:
lingdocs 2021-08-22 12:19:03 +04:00
parent 2e7defbf61
commit 3fea41977f
1 changed files with 31 additions and 27 deletions

View File

@ -91,37 +91,41 @@ apiRouter.put("/email-verification", async (req, res, next) => {
}
});
apiRouter.post("/user/upgrade", async (req, res, next) => {
apiRouter.put("/user/upgrade", async (req, res, next) => {
if (!req.user) throw new Error("user not found");
const givenPassword = (req.body.password || "") as string;
const studentPassword = env.upgradePassword;
if (givenPassword.toLowerCase().trim() !== studentPassword.toLowerCase()) {
const wrongPass: T.UpgradeUserResponse = {
ok: false,
error: "incorrect password",
};
res.send(wrongPass);
return;
}
const { userId } = req.user;
const user = await getLingdocsUser("userId", userId);
if (user) {
const alreadyUpgraded: T.UpgradeUserResponse = {
try {
const givenPassword = (req.body.password || "") as string;
const studentPassword = env.upgradePassword;
if (givenPassword.toLowerCase().trim() !== studentPassword.toLowerCase()) {
const wrongPass: T.UpgradeUserResponse = {
ok: false,
error: "incorrect password",
};
res.send(wrongPass);
return;
}
const { userId } = req.user;
const user = await getLingdocsUser("userId", userId);
if (user) {
const alreadyUpgraded: T.UpgradeUserResponse = {
ok: true,
message: "user already upgraded",
user,
};
res.send(alreadyUpgraded);
return;
}
const { name, password } = await createWordlistDatabase(userId);
const u = await updateLingdocsUser(userId, { level: "student", wordlistDbName: name, userDbPassword: password });
const upgraded: T.UpgradeUserResponse = {
ok: true,
message: "user already upgraded",
user,
message: "user upgraded to student",
user: u,
};
res.send(alreadyUpgraded);
return;
res.send(upgraded);
} catch (e) {
next(e);
}
const { name, password } = await createWordlistDatabase(userId);
const u = await updateLingdocsUser(userId, { level: "student", wordlistDbName: name, userDbPassword: password });
const upgraded: T.UpgradeUserResponse = {
ok: true,
message: "user upgraded to student",
user: u,
};
res.send(upgraded);
});
/**