From b7f254cd426138880318d2ba6a06e8e86ae407bf Mon Sep 17 00:00:00 2001
From: IRONM00N <64110067+IRONM00N@users.noreply.github.com>
Date: Thu, 26 Aug 2021 13:43:22 -0400
Subject: finished feature command and did some refactoring
---
src/lib/models/ActivePunishment.ts | 2 +-
src/lib/models/BaseModel.ts | 3 +-
src/lib/models/Global.ts | 65 ++---------------
src/lib/models/Guild.ts | 140 ++++++++++++-------------------------
src/lib/models/Level.ts | 3 +-
src/lib/models/ModLog.ts | 3 +-
src/lib/models/StickyRole.ts | 14 +---
src/lib/models/__helpers.ts | 23 ++++++
8 files changed, 81 insertions(+), 172 deletions(-)
create mode 100644 src/lib/models/__helpers.ts
(limited to 'src/lib/models')
diff --git a/src/lib/models/ActivePunishment.ts b/src/lib/models/ActivePunishment.ts
index 62bb73e..10ae766 100644
--- a/src/lib/models/ActivePunishment.ts
+++ b/src/lib/models/ActivePunishment.ts
@@ -147,7 +147,7 @@ export class ActivePunishment
}
}
},
- { sequelize: sequelize }
+ { sequelize }
);
}
}
diff --git a/src/lib/models/BaseModel.ts b/src/lib/models/BaseModel.ts
index 8ed5ed3..555bf7d 100644
--- a/src/lib/models/BaseModel.ts
+++ b/src/lib/models/BaseModel.ts
@@ -1,6 +1,5 @@
import { Model } from 'sequelize';
-
-const NEVER_USED = 'This should never be executed';
+import { NEVER_USED } from './__helpers';
export abstract class BaseModel extends Model {
/**
diff --git a/src/lib/models/Global.ts b/src/lib/models/Global.ts
index 36c72d8..17bd570 100644
--- a/src/lib/models/Global.ts
+++ b/src/lib/models/Global.ts
@@ -1,6 +1,7 @@
import { Snowflake } from 'discord.js';
import { DataTypes, Sequelize } from 'sequelize';
import { BaseModel } from './BaseModel';
+import { jsonArrayInit, NEVER_USED } from './__helpers';
export interface GlobalModel {
environment: 'production' | 'development' | 'beta';
@@ -20,8 +21,6 @@ export interface GlobalModelCreationAttributes {
blacklistedChannels?: Snowflake[];
}
-const NEVER_USED = 'This should never be executed';
-
export class Global extends BaseModel implements GlobalModel {
/**
* The bot's environment.
@@ -90,63 +89,13 @@ export class Global extends BaseModel implements GuildModel {
/**
@@ -164,10 +194,10 @@ export class Guild extends BaseModel i
/**
* The features enabled in a guild
*/
- public get enabledFeatures(): string[] {
+ public get enabledFeatures(): GuildFeatures[] {
throw new Error(NEVER_USED);
}
- public set enabledFeatures(_: string[]) {
+ public set enabledFeatures(_: GuildFeatures[]) {
throw new Error(NEVER_USED);
}
@@ -193,39 +223,9 @@ export class Guild extends BaseModel i
allowNull: false,
defaultValue: client.config.prefix
},
- autoPublishChannels: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('autoPublishChannels') as unknown as string);
- },
- set: function (val: Snowflake[]) {
- return this.setDataValue('autoPublishChannels', JSON.stringify(val) as unknown as Snowflake[]);
- },
- allowNull: false,
- defaultValue: '[]'
- },
- blacklistedChannels: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('blacklistedChannels') as unknown as string);
- },
- set: function (val: Snowflake[]) {
- return this.setDataValue('blacklistedChannels', JSON.stringify(val) as unknown as Snowflake[]);
- },
- allowNull: false,
- defaultValue: '[]'
- },
- blacklistedUsers: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('blacklistedUsers') as unknown as string);
- },
- set: function (val: Snowflake[]) {
- return this.setDataValue('blacklistedUsers', JSON.stringify(val) as unknown as Snowflake[]);
- },
- allowNull: false,
- defaultValue: '[]'
- },
+ autoPublishChannels: jsonArrayInit('autoPublishChannels'),
+ blacklistedChannels: jsonArrayInit('blacklistedChannels'),
+ blacklistedUsers: jsonArrayInit('blacklistedChannels'),
welcomeChannel: {
type: DataTypes.STRING,
allowNull: true
@@ -238,61 +238,11 @@ export class Guild extends BaseModel i
type: DataTypes.TEXT,
allowNull: true
},
- disabledCommands: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('disabledCommands') as unknown as string);
- },
- set: function (val: string[]) {
- return this.setDataValue('disabledCommands', JSON.stringify(val) as unknown as string[]);
- },
- allowNull: false,
- defaultValue: '[]'
- },
- lockdownChannels: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('lockdownChannels') as unknown as string);
- },
- set: function (val: Snowflake[]) {
- return this.setDataValue('lockdownChannels', JSON.stringify(val) as unknown as Snowflake[]);
- },
- allowNull: false,
- defaultValue: '[]'
- },
- autoModPhases: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('autoModPhases') as unknown as string);
- },
- set: function (val: string[]) {
- return this.setDataValue('autoModPhases', JSON.stringify(val) as unknown as string[]);
- },
- allowNull: false,
- defaultValue: '[]'
- },
- enabledFeatures: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('enabledFeatures') as unknown as string);
- },
- set: function (val: string[]) {
- return this.setDataValue('enabledFeatures', JSON.stringify(val) as unknown as string[]);
- },
- allowNull: false,
- defaultValue: '[]'
- },
- joinRoles: {
- type: DataTypes.TEXT,
- get: function () {
- return JSON.parse(this.getDataValue('joinRoles') as unknown as string);
- },
- set: function (val: string[]) {
- return this.setDataValue('joinRoles', JSON.stringify(val) as unknown as string[]);
- },
- allowNull: false,
- defaultValue: '[]'
- }
+ disabledCommands: jsonArrayInit('disabledCommands'),
+ lockdownChannels: jsonArrayInit('lockdownChannels'),
+ autoModPhases: jsonArrayInit('autoModPhases'),
+ enabledFeatures: jsonArrayInit('enabledFeatures'),
+ joinRoles: jsonArrayInit('joinRoles')
},
{ sequelize: sequelize }
);
diff --git a/src/lib/models/Level.ts b/src/lib/models/Level.ts
index ad64747..0960d4f 100644
--- a/src/lib/models/Level.ts
+++ b/src/lib/models/Level.ts
@@ -1,6 +1,7 @@
import { Snowflake } from 'discord.js';
import { DataTypes, Sequelize } from 'sequelize';
import { BaseModel } from './BaseModel';
+import { NEVER_USED } from './__helpers';
export interface LevelModel {
user: Snowflake;
@@ -14,8 +15,6 @@ export interface LevelModelCreationAttributes {
xp?: number;
}
-const NEVER_USED = 'This should never be executed';
-
export class Level extends BaseModel {
/**
* The user's id.
diff --git a/src/lib/models/ModLog.ts b/src/lib/models/ModLog.ts
index 50d142a..7787375 100644
--- a/src/lib/models/ModLog.ts
+++ b/src/lib/models/ModLog.ts
@@ -2,6 +2,7 @@ import { Snowflake } from 'discord.js';
import { DataTypes, Sequelize } from 'sequelize';
import { v4 as uuidv4 } from 'uuid';
import { BaseModel } from './BaseModel';
+import { NEVER_USED } from './__helpers';
export enum ModLogType {
PERM_BAN = 'PERM_BAN',
@@ -42,8 +43,6 @@ export interface ModLogModelCreationAttributes {
evidence?: string;
}
-const NEVER_USED = 'This should never be executed';
-
export class ModLog extends BaseModel implements ModLogModel {
/**
* The primary key of the modlog entry.
diff --git a/src/lib/models/StickyRole.ts b/src/lib/models/StickyRole.ts
index d304370..4c06b32 100644
--- a/src/lib/models/StickyRole.ts
+++ b/src/lib/models/StickyRole.ts
@@ -1,6 +1,7 @@
import { Snowflake } from 'discord.js';
import { DataTypes, Sequelize } from 'sequelize';
import { BaseModel } from './BaseModel';
+import { jsonArrayInit, NEVER_USED } from './__helpers';
export interface StickyRoleModel {
user: Snowflake;
@@ -15,8 +16,6 @@ export interface StickyRoleModelCreationAttributes {
nickname?: string;
}
-const NEVER_USED = 'This should never be executed';
-
export class StickyRole extends BaseModel implements StickyRoleModel {
/**
* The id of the user the roles belongs to
@@ -69,16 +68,7 @@ export class StickyRole extends BaseModel