修改用户名&多任务奖励
This commit is contained in:
@@ -90,20 +90,23 @@ exports.giveTaskReward = async (userId, taskConfig) => {
|
|||||||
for (let i = 0; i < taskConfig.rewardTypes.length; i++) {
|
for (let i = 0; i < taskConfig.rewardTypes.length; i++) {
|
||||||
const rewardType = taskConfig.rewardTypes[i];
|
const rewardType = taskConfig.rewardTypes[i];
|
||||||
const rewardNum = taskConfig.rewardNums[i];
|
const rewardNum = taskConfig.rewardNums[i];
|
||||||
|
const user = await UserModel.getById(userId);
|
||||||
switch (rewardType) {
|
switch (rewardType) {
|
||||||
case TASK_REWARD_TYPES.COINS:
|
case TASK_REWARD_TYPES.COINS:
|
||||||
// Here we would call the rewards system to give coins to the user
|
|
||||||
const user = await UserModel.getById(userId);
|
|
||||||
user.coins += rewardNum;
|
user.coins += rewardNum;
|
||||||
|
break;
|
||||||
await user.save();
|
case TASK_REWARD_TYPES.CRYSTALS:
|
||||||
|
user.crystals += rewardNum;
|
||||||
|
break;
|
||||||
|
case TASK_REWARD_TYPES.CARD_FRAGMENTS:
|
||||||
|
user.cardfragments += rewardNum;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
console.log(`Unknown reward type: ${rewardType}`);
|
console.log(`Unknown reward type: ${rewardType}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
await user.save();
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -211,6 +211,48 @@ exports.EditEmail = async(req, res) => {
|
|||||||
return res.status(200).send(result.deleteSecrets());
|
return res.status(200).send(result.deleteSecrets());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.EditUsername = async(req, res) => {
|
||||||
|
|
||||||
|
var userId = req.jwt.userId;
|
||||||
|
var username = req.body.username;
|
||||||
|
|
||||||
|
if(!userId || typeof userId !== "string")
|
||||||
|
return res.status(400).send({error: "Invalid parameters"});
|
||||||
|
|
||||||
|
if(!username || !Validator.validateUsername(username))
|
||||||
|
return res.status(400).send({error: "Invalid email"});
|
||||||
|
|
||||||
|
var user = await UserModel.getById(userId);
|
||||||
|
if(!user)
|
||||||
|
return res.status(404).send({error: "User not found: " + userId});
|
||||||
|
|
||||||
|
if(username == user.username)
|
||||||
|
return res.status(400).send({error: "Username unchanged"});
|
||||||
|
|
||||||
|
//Find username
|
||||||
|
var foundUserUsername = await UserModel.getByUsername(username);
|
||||||
|
if(foundUserUsername)
|
||||||
|
return res.status(403).send({error: "Username already exists"});
|
||||||
|
|
||||||
|
var prev_username = user.username;
|
||||||
|
var userData = {};
|
||||||
|
userData.username = username;
|
||||||
|
userData.validation_level = 0;
|
||||||
|
userData.email_confirm_key = UserTool.generateID(20);
|
||||||
|
|
||||||
|
//Update user
|
||||||
|
var result = await UserModel.update(user, userData);
|
||||||
|
if(!result)
|
||||||
|
return res.status(400).send({error: "Error updating user username: " + userId});
|
||||||
|
|
||||||
|
// Activity Log -------------
|
||||||
|
var activityData = {prev_username: prev_username, new_username: username };
|
||||||
|
var a = await Activity.LogActivity("edit_username", req.jwt.username, {activityData});
|
||||||
|
if (!a) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
|
return res.status(200).send(result.deleteSecrets());
|
||||||
|
};
|
||||||
|
|
||||||
exports.EditPassword = async(req, res) => {
|
exports.EditPassword = async(req, res) => {
|
||||||
|
|
||||||
var userId = req.jwt.userId;
|
var userId = req.jwt.userId;
|
||||||
|
|||||||
@@ -51,6 +51,13 @@ exports.route = function (app) {
|
|||||||
UsersController.EditEmail,
|
UsersController.EditEmail,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
//Body: username
|
||||||
|
app.post("/users/username/edit", app.auth_limiter, [
|
||||||
|
AuthTool.isValidJWT,
|
||||||
|
AuthTool.isPermissionLevel(USER),
|
||||||
|
UsersController.EditUsername,
|
||||||
|
]);
|
||||||
|
|
||||||
//Body: password_previous, password_new
|
//Body: password_previous, password_new
|
||||||
app.post("/users/password/edit", app.auth_limiter, [
|
app.post("/users/password/edit", app.auth_limiter, [
|
||||||
AuthTool.isValidJWT,
|
AuthTool.isValidJWT,
|
||||||
|
|||||||
Reference in New Issue
Block a user