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