forked from embee/woomy
		
	combined getGuild & createGuild, added user funcs
This commit is contained in:
		
							parent
							
								
									da505f8554
								
							
						
					
					
						commit
						cdddb4d11d
					
				
					 6 changed files with 43 additions and 17 deletions
				
			
		| 
						 | 
					@ -4,10 +4,7 @@ module.exports = async (client, guild) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Create DB entry for newly joined guild
 | 
					  // Create DB entry for newly joined guild
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
    const newGuild = {
 | 
					    await client.findOrCreateGuild(guild)
 | 
				
			||||||
      guildID: guild.id
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    await client.createGuild(newGuild)
 | 
					 | 
				
			||||||
  } catch (err) {
 | 
					  } catch (err) {
 | 
				
			||||||
    client.logger.error('Failed to create DB entry for newly joined guild: ' + err)
 | 
					    client.logger.error('Failed to create DB entry for newly joined guild: ' + err)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
const mongoose = require('mongoose')
 | 
					const mongoose = require('mongoose')
 | 
				
			||||||
const Guild = require('../models/guild')
 | 
					const Guild = require('../models/guild')
 | 
				
			||||||
 | 
					const User = require('../models/user')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = client => {
 | 
					module.exports = client => {
 | 
				
			||||||
  // Permission level function
 | 
					  // Permission level function
 | 
				
			||||||
| 
						 | 
					@ -19,17 +20,19 @@ module.exports = client => {
 | 
				
			||||||
    return permlvl
 | 
					    return permlvl
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Get settings
 | 
					  // Get guild settings
 | 
				
			||||||
  client.getGuild = async (guild) => {
 | 
					  client.findOrCreateGuild = async (guild) => {
 | 
				
			||||||
    const data = await Guild.findOne({ guildID: guild.id })
 | 
					    const data = await Guild.findOne({ guildID: guild.id })
 | 
				
			||||||
    if (data) {
 | 
					    if (data) {
 | 
				
			||||||
      return data
 | 
					      return data
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      throw new Error('No entry for this guild was found in the database!')
 | 
					      const merged = Object.assign({ _id: mongoose.Types.ObjectId() }, { guildID: guild.id })
 | 
				
			||||||
 | 
					      const newGuild = await new Guild(merged)
 | 
				
			||||||
 | 
					      return newGuild.save()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Update settings
 | 
					  // Update guild settings
 | 
				
			||||||
  client.updateGuild = async (guild, settings) => {
 | 
					  client.updateGuild = async (guild, settings) => {
 | 
				
			||||||
    let data = await client.getGuild(guild)
 | 
					    let data = await client.getGuild(guild)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,14 +46,7 @@ module.exports = client => {
 | 
				
			||||||
    return data.updateOne(settings)
 | 
					    return data.updateOne(settings)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Create new entry for new guild
 | 
					  // Delete guild settings
 | 
				
			||||||
  client.createGuild = async (settings) => {
 | 
					 | 
				
			||||||
    const merged = Object.assign({ _id: mongoose.Types.ObjectId() }, settings)
 | 
					 | 
				
			||||||
    const newGuild = await new Guild(merged)
 | 
					 | 
				
			||||||
    return newGuild.save()
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Delete guild data
 | 
					 | 
				
			||||||
  client.deleteGuild = async (guild) => {
 | 
					  client.deleteGuild = async (guild) => {
 | 
				
			||||||
    const data = await client.getGuild(guild)
 | 
					    const data = await client.getGuild(guild)
 | 
				
			||||||
    if (data) {
 | 
					    if (data) {
 | 
				
			||||||
| 
						 | 
					@ -58,6 +54,40 @@ module.exports = client => {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Get user settings
 | 
				
			||||||
 | 
					  client.findOrCreateUser = async (user) => {
 | 
				
			||||||
 | 
					    const data = await User.findOne({ userID: user.id })
 | 
				
			||||||
 | 
					    if (data) {
 | 
				
			||||||
 | 
					      return data
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      const merged = Object.assign({ _id: mongoose.Types.ObjectId() }, { userID: user.id })
 | 
				
			||||||
 | 
					      const newUser = await new User(merged)
 | 
				
			||||||
 | 
					      return newUser.save()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Update user settings
 | 
				
			||||||
 | 
					  client.updateUser = async (user, settings) => {
 | 
				
			||||||
 | 
					    let data = await client.getUser(user)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (typeof data !== 'object') data = {}
 | 
				
			||||||
 | 
					    for (const key in settings) {
 | 
				
			||||||
 | 
					      if (data[key] !== settings[key]) {
 | 
				
			||||||
 | 
					        data[key] = settings[key]
 | 
				
			||||||
 | 
					      } else return
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return data.updateOne(settings)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Delete user settings
 | 
				
			||||||
 | 
					  client.deleteUser = async (user) => {
 | 
				
			||||||
 | 
					    const data = await client.getUser(user)
 | 
				
			||||||
 | 
					    if (data) {
 | 
				
			||||||
 | 
					      data.deleteOne({ userID: user.id })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Loads commands
 | 
					  // Loads commands
 | 
				
			||||||
  client.loadCommand = (commandName) => {
 | 
					  client.loadCommand = (commandName) => {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
// will fix invalid db entries (invalid ids and stuff)
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue