const { mongo_url, trello_token, trello_key } = require('../config.json'); const { userModel, } = require('./schemas.js'); let mongoose = require('mongoose'); module.exports = { name: 'upgrade', channels: ['734387503464710165'], description: 'Upgrade a user!', roles: ['732345527143759943'], async execute(message,args) { try { await mongoose.connect( mongo_url, {useNewUrlParser: true, useUnifiedTopology: true}, () => null ); }catch (error) { console.log("ERROR WITH MONGODB CONNECTION"); } var roles_hierarchy = [ '732558019409346603', // 'kiddie, '732618552661770241', // 'hunter', '732618853355356192', // 'hacker', '732618650158366770' // 'mentor' ]; const member = message.mentions.members.first(); let data = await userModel.find({_id : member.id},"rank") let current_index = data[0].rank - 1 if(current_index == roles_hierarchy.length - 1){ return message.channel.send("This user is already at the highest level!") } member.roles.remove(roles_hierarchy[current_index]) member.roles.add(roles_hierarchy[current_index + 1]); userModel.findOneAndUpdate( {_id : member.id}, {rank : current_index + 2}, { new: true, runValidators: true, useFindAndModify: false }, function(err, result) { //if (err) {console.log(err); } else {console.log(result);} }); return message.channel.send("User upgraded successfully!") }, };