Skip to content

Commit

Permalink
Rename database structure fields.
Browse files Browse the repository at this point in the history
- servers: serverID -> id
- servers: addRoleForAll -> publicRoles
- warnings: serverID -> serverId
- warnings: warnerID -> warnerId
- warnings: warnedID -> warnerId
  • Loading branch information
retrixe committed Aug 2, 2021
1 parent 14a6d37 commit d3b7200
Show file tree
Hide file tree
Showing 9 changed files with 35 additions and 38 deletions.
2 changes: 1 addition & 1 deletion dashboard/imports/dashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const GET_SERVER_SETTINGS = gql`
query GetServerSettings($id: String!) {
serverSettings: getServerSettings(id: $id) {
id
addRoleForAll
publicRoles
joinAutorole
joinLeaveMessages {
channel
Expand Down
2 changes: 1 addition & 1 deletion dashboard/imports/graphqlTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ export interface JoinLeaveMessages extends ApolloBase {

export interface ServerSettings extends ApolloBase {
joinLeaveMessages: JoinLeaveMessages
addRoleForAll: string
joinAutorole: string
publicRoles: string
ocrOnSend: boolean
id: string
}
19 changes: 8 additions & 11 deletions dashboard/imports/resolvers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,14 @@ MongoClient.connect(mongoUrl === 'dotenv' ? process.env.MONGO_URL || '' : mongoU
const botClient = new Client(`Bot ${botToken}`, { restMode: true })

// Helper functions.
const getServerSettings = async (serverID: string): Promise<Document> => {
const getServerSettings = async (id: string): Promise<Document> => {
// Get serverSettings through query.
let serverSettings = await db.collection('servers').findOne({ serverID })
const serverSettings = await db.collection('servers').findOne({ id })
if (!serverSettings) {
// Initialize server settings.
await db.collection('servers').insertOne({ serverID })
serverSettings = { serverID }
await db.collection('servers').insertOne({ id })
}
serverSettings.id = serverSettings.serverID
delete serverSettings.serverID
return serverSettings
return serverSettings || { id }
}

interface ResolverContext {
Expand Down Expand Up @@ -104,7 +101,7 @@ export default {
return {
id,
joinAutorole: '',
addRoleForAll: '',
publicRoles: '',
ocrOnSend: false,
...serverSettings,
joinLeaveMessages: { ...defaultJoinMsgs, ...(serverSettings.joinLeaveMessages || {}) }
Expand Down Expand Up @@ -153,7 +150,7 @@ export default {
{ id, newSettings }: {
id: string
newSettings: {
addRoleForAll: string
publicRoles: string
joinAutorole: string
joinLeaveMessages: { channel: string, joinMessage: string, leaveMessage: string }
ocrOnSend: boolean
Expand All @@ -177,10 +174,10 @@ export default {
const serverSettings = await getServerSettings(id)
// Insert default values for all properties.
const defaultJoinMsgs = { channel: '', joinMessage: '', leaveMessage: '', banMessage: '' }
await db.collection('servers').updateOne({ serverID: id }, {
await db.collection('servers').updateOne({ id }, {
$set: {
joinAutorole: '',
addRoleForAll: '',
publicRoles: '',
ocrOnSend: false,
...serverSettings,
joinLeaveMessages: { ...defaultJoinMsgs, ...(serverSettings.joinLeaveMessages || {}) }
Expand Down
8 changes: 4 additions & 4 deletions dashboard/imports/settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const EDIT_SERVER_SETTINGS = gql`
) {
editServerSettings(id: $id, newSettings: $newSettings) {
id
addRoleForAll
publicRoles
joinAutorole
ocrOnSend
joinLeaveMessages {
Expand All @@ -33,7 +33,7 @@ const Settings = (props: { data: ServerSettings, server: ServerInfo }): JSX.Elem
const setJoinLeaveMessages = (e: Partial<JoinLeaveMessages>): void => setServerSettings(s => ({
...s, joinLeaveMessages: { ...(s.joinLeaveMessages || {}), ...e }
}))
const setAddRoleForAll = (e: string): void => setServerSettings(s => ({ ...s, addRoleForAll: e }))
const setpublicRoles = (e: string): void => setServerSettings(s => ({ ...s, publicRoles: e }))
const setJoinAutorole = (e: string): void => setServerSettings(s => ({ ...s, joinAutorole: e }))
const toggleOcrOnSend = (): void => setServerSettings(s => ({ ...s, ocrOnSend: !s.ocrOnSend }))

Expand All @@ -54,8 +54,8 @@ const Settings = (props: { data: ServerSettings, server: ServerInfo }): JSX.Elem
<FormControl fullWidth>
<InputLabel>Role Names</InputLabel>
<Input
value={serverSettings.addRoleForAll || ''} fullWidth
onChange={e => setAddRoleForAll(e.target.value)} margin='dense'
value={serverSettings.publicRoles || ''} fullWidth
onChange={e => setpublicRoles(e.target.value)} margin='dense'
/>
<FormHelperText>Leave blank to disable public roles</FormHelperText>
</FormControl>
Expand Down
6 changes: 3 additions & 3 deletions dashboard/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ type ServerSetting {
"""Server ID."""
id: String!
"""If add role is enabled for everyone."""
addRoleForAll: String
publicRoles: String
"""If join autorole is enabled, and if so, what role."""
joinAutorole: String
"""If join/leave messages are enabled, and if so, what message and channel."""
Expand Down Expand Up @@ -83,14 +83,14 @@ input JoinLeaveMessagesInput {

"""Input for editServerSettings mutation."""
input EditServerSettingsInput {
"""Enable public roles through this setting."""
addRoleForAll: String
"""Edit join autorole through this setting."""
joinAutorole: String
"""Edit join leave messages through this setting."""
joinLeaveMessages: JoinLeaveMessagesInput
"""Edit text recognition on image send through this setting."""
ocrOnSend: Boolean
"""Enable public roles through this setting."""
publicRoles: String
}

"""Enable mutations."""
Expand Down
4 changes: 2 additions & 2 deletions src/commands/admin/roles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const handleGiverole: Command = {
const manageRoles = message.member.permissions.has('manageRoles')
// Check user for permissions.
const insult = `**Thankfully, you don't have enough permissions for that, you ${getInsult()}.**`
const publicRoles = (await getServerSettings(db, message.member.guild.id)).addRoleForAll || ''
const publicRoles = (await getServerSettings(db, message.member.guild.id)).publicRoles || ''
if (!manageRoles && !publicRoles) return insult
// Now find the user ID.
let user = getUser(message, args[0])
Expand Down Expand Up @@ -78,7 +78,7 @@ export const handleTakerole: Command = {
const manageRoles = message.member.permissions.has('manageRoles')
// Check user for permissions.
const insult = `**Thankfully, you don't have enough permissions for that, you ${getInsult()}.**`
const publicRoles = (await getServerSettings(db, message.member.guild.id)).addRoleForAll || ''
const publicRoles = (await getServerSettings(db, message.member.guild.id)).publicRoles || ''
if (!manageRoles && !publicRoles) return insult
// Now find the user ID.
let user = getUser(message, args[0])
Expand Down
20 changes: 10 additions & 10 deletions src/commands/admin/warn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ export const handleWarn: Command = {
// Warn the person internally.
args.shift()
await db.collection('warnings').insertOne({
warnedID: user.id,
warnerID: message.author.id,
warnedId: user.id,
warnerId: message.author.id,
reason: args.join(' '),
serverID: message.member.guild.id,
serverId: message.member.guild.id,
date: new Date().toUTCString()
})
client.createMessage(
Expand Down Expand Up @@ -85,7 +85,7 @@ export const handleWarnings: Command = {
else if (!user) user = message.author
// Get a list of warnings.
const warns = await db.collection('warnings').find({
warnedID: user.id, serverID: message.member.guild.id
warnedId: user.id, serverId: message.member.guild.id
}).toArray()
// If the person has no warnings..
if (warns.length === 0) return '**No** warnings found.'
Expand All @@ -100,8 +100,8 @@ export const handleWarnings: Command = {
// This function generates the fields.
fields: warns.map((warning, index) => {
// If we could find the warner then we specify his/her username+discriminator else ID.
const warner = client.users.get(warning.warnerID)
const mod = warner ? `${warner.username}#${warner.discriminator}` : warning.warnerID
const warner = client.users.get(warning.warnerId)
const mod = warner ? `${warner.username}#${warner.discriminator}` : warning.warnerId
return {
name: `Warning ${index + 1}`,
value: `**| Moderator:** ${mod} **| Reason:** ${warning.reason}
Expand Down Expand Up @@ -140,7 +140,7 @@ export const handleClearwarns: Command = {
// Clear the warns of the person internally.
try {
await db.collection('warnings').deleteMany({
warnedID: user.id, serverID: message.member.guild.id
warnedId: user.id, serverId: message.member.guild.id
})
} catch (err) { return `Something went wrong 👾 Error: ${err}` }
// Return response.
Expand Down Expand Up @@ -175,15 +175,15 @@ export const handleRemovewarn: Command = {
// Remove the warning of the person internally.
try {
const warn = await db.collection('warnings').findOne({
_id: new ObjectId(args[0]), serverID: message.member.guild.id
_id: new ObjectId(args[0]), serverId: message.member.guild.id
})
if (!warn) return { content: 'This warning does not exist..', error: true }
else if (warn.warnedID !== user.id) {
else if (warn.warnedId !== user.id) {
return { content: 'This warning does not belong to the specified user..', error: true }
}
try {
await db.collection('warnings').deleteOne({
_id: new ObjectId(args[0]), serverID: message.member.guild.id
_id: new ObjectId(args[0]), serverId: message.member.guild.id
})
} catch (e) { return `Something went wrong 👾 Error: ${e}` }
} catch (err) { return `Something went wrong 👾 Error: ${err}` }
Expand Down
4 changes: 2 additions & 2 deletions src/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ export const guildBanAdd = (client: Client, db: Db) => async (guild: Guild, user

// When the bot leaves a server, this function will be called.
export const guildDelete = (db: Db) => async (guild: Guild) => {
const settings = await db.collection('servers').findOne({ serverID: guild.id })
if (settings) await db.collection('servers').deleteOne({ serverID: guild.id })
const settings = await db.collection('servers').findOne({ id: guild.id })
if (settings) await db.collection('servers').deleteOne({ id: guild.id })
}

// When client recieves a message, it will callback.
Expand Down
8 changes: 4 additions & 4 deletions src/imports/tools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ export const getIdFromMention = (mention: string): string => {
return f[f.length - 1]
}

export const getServerSettings = async (db: Db, serverID: string): Promise<Document> => {
export const getServerSettings = async (db: Db, id: string): Promise<Document> => {
// Get serverSettings through query.
let serverSettings = await db.collection('servers').find({ serverID }).toArray()
let serverSettings = await db.collection('servers').find({ id }).toArray()
if (serverSettings.length === 0) {
// Initialize server settings.
await db.collection('servers').insertOne({ serverID })
serverSettings = await db.collection('servers').find({ serverID }).toArray()
await db.collection('servers').insertOne({ id })
serverSettings = await db.collection('servers').find({ id }).toArray()
}
return serverSettings[0]
}
Expand Down

0 comments on commit d3b7200

Please sign in to comment.