diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/src/entities/BaseClass.ts | 3 | ||||
-rw-r--r-- | util/src/entities/Emoji.ts | 2 | ||||
-rw-r--r-- | util/src/entities/Guild.ts | 24 | ||||
-rw-r--r-- | util/src/entities/Member.ts | 6 | ||||
-rw-r--r-- | util/src/entities/Role.ts | 4 | ||||
-rw-r--r-- | util/src/util/Config.ts | 3 | ||||
-rw-r--r-- | util/src/util/Permissions.ts | 9 |
7 files changed, 25 insertions, 26 deletions
diff --git a/util/src/entities/BaseClass.ts b/util/src/entities/BaseClass.ts index 31338ff6..63ce5836 100644 --- a/util/src/entities/BaseClass.ts +++ b/util/src/entities/BaseClass.ts @@ -51,7 +51,8 @@ export class BaseClass extends BaseEntity { if (setter) { setter.call(this, props[key]); } else { - Object.defineProperty(this, key, { value: props[key] }); + // @ts-ignore + this[key] = props[key]; } } } diff --git a/util/src/entities/Emoji.ts b/util/src/entities/Emoji.ts index 0686d476..4c0fccd3 100644 --- a/util/src/entities/Emoji.ts +++ b/util/src/entities/Emoji.ts @@ -15,7 +15,7 @@ export class Emoji extends BaseClass { guild_id: string; @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, (guild: Guild) => guild.id) + @ManyToOne(() => Guild, (guild: Guild) => guild.emojis) guild: Guild; @Column() diff --git a/util/src/entities/Guild.ts b/util/src/entities/Guild.ts index e6a93824..3e7e8917 100644 --- a/util/src/entities/Guild.ts +++ b/util/src/entities/Guild.ts @@ -1,4 +1,4 @@ -import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToOne, RelationId } from "typeorm"; +import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Channel } from "./Channel"; import { Emoji } from "./Emoji"; @@ -68,35 +68,35 @@ export class Guild extends BaseClass { member_ids: string[]; @JoinColumn({ name: "member_ids" }) - @ManyToMany(() => Member, (member: Member) => member.id) + @OneToMany(() => Member, (member: Member) => member.guild) members: Member[]; @RelationId((guild: Guild) => guild.roles) role_ids: string[]; @JoinColumn({ name: "role_ids" }) - @ManyToMany(() => Role, (role: Role) => role.id) + @OneToMany(() => Role, (role: Role) => role.guild) roles: Role[]; @RelationId((guild: Guild) => guild.channels) channel_ids: string[]; @JoinColumn({ name: "channel_ids" }) - @ManyToMany(() => Channel, (channel: Channel) => channel.id) + @OneToMany(() => Channel, (channel: Channel) => channel.guild) channels: Channel[]; @RelationId((guild: Guild) => guild.emojis) emoji_ids: string[]; @JoinColumn({ name: "emoji_ids" }) - @ManyToMany(() => Emoji, (emoji: Emoji) => emoji.id) + @OneToMany(() => Emoji, (emoji: Emoji) => emoji.guild) emojis: Emoji[]; @RelationId((guild: Guild) => guild.voice_states) voice_state_ids: string[]; @JoinColumn({ name: "voice_state_ids" }) - @ManyToMany(() => VoiceState, (voicestate: VoiceState) => voicestate.id) + @OneToMany(() => VoiceState, (voicestate: VoiceState) => voicestate.guild) voice_states: VoiceState[]; @Column({ nullable: true }) @@ -109,7 +109,7 @@ export class Guild extends BaseClass { owner_id: string; @JoinColumn({ name: "owner_id" }) - @ManyToOne(() => User, (user: User) => user.id) + @OneToOne(() => User) owner: User; @Column({ nullable: true }) @@ -125,14 +125,14 @@ export class Guild extends BaseClass { public_updates_channel_id: string; @JoinColumn({ name: "public_updates_channel_id" }) - @ManyToOne(() => Channel, (channel: Channel) => channel.id) + @OneToOne(() => Channel, (channel: Channel) => channel.id) public_updates_channel?: Channel; @RelationId((guild: Guild) => guild.rules_channel) rules_channel_id?: string; @JoinColumn({ name: "rules_channel_id" }) - @ManyToOne(() => Channel, (channel: Channel) => channel.id) + @OneToOne(() => Channel, (channel: Channel) => channel.id) rules_channel?: string; @Column({ nullable: true }) @@ -145,7 +145,7 @@ export class Guild extends BaseClass { system_channel_id?: string; @JoinColumn({ name: "system_channel_id" }) - @ManyToMany(() => Channel, (channel: Channel) => channel.id) + @OneToOne(() => Channel, (channel: Channel) => channel.id) system_channel?: Channel; @Column({ nullable: true }) @@ -158,7 +158,7 @@ export class Guild extends BaseClass { vanity_url_code?: string; @JoinColumn({ name: "vanity_url_code" }) - @ManyToOne(() => Invite) + @OneToOne(() => Invite) vanity_url?: Invite; @Column({ nullable: true }) @@ -180,7 +180,7 @@ export class Guild extends BaseClass { widget_channel_id?: string; @JoinColumn({ name: "widget_channel_id" }) - @ManyToOne(() => Channel, (channel: Channel) => channel.id) + @OneToOne(() => Channel, (channel: Channel) => channel.id) widget_channel?: Channel; @Column({ nullable: true }) diff --git a/util/src/entities/Member.ts b/util/src/entities/Member.ts index 5b588d70..c5d289ef 100644 --- a/util/src/entities/Member.ts +++ b/util/src/entities/Member.ts @@ -1,6 +1,6 @@ import { PublicUser, User } from "./User"; import { BaseClass } from "./BaseClass"; -import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, RelationId } from "typeorm"; +import { Column, Entity, JoinColumn, JoinTable, ManyToMany, ManyToOne, OneToMany, RelationId } from "typeorm"; import { Guild } from "./Guild"; import { Config, emitEvent } from "../util"; import { @@ -26,7 +26,7 @@ export class Member extends BaseClass { guild_id: string; @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, (guild: Guild) => guild.id) + @ManyToOne(() => Guild, (guild: Guild) => guild.members) guild: Guild; @Column({ nullable: true }) @@ -35,7 +35,7 @@ export class Member extends BaseClass { @RelationId((member: Member) => member.roles) role_ids: string[]; - @JoinColumn({ name: "role_ids" }) + @JoinTable() @ManyToMany(() => Role) roles: Role[]; diff --git a/util/src/entities/Role.ts b/util/src/entities/Role.ts index ddae7e40..be8c731d 100644 --- a/util/src/entities/Role.ts +++ b/util/src/entities/Role.ts @@ -27,8 +27,8 @@ export class Role extends BaseClass { @Column() name: string; - @Column({ type: "bigint" }) - permissions: bigint; + @Column() + permissions: string; @Column() position: number; diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts index f16921bd..508a8901 100644 --- a/util/src/util/Config.ts +++ b/util/src/util/Config.ts @@ -7,7 +7,8 @@ var config: ConfigEntity; export const Config = { init: async function init() { if (config) return config; - config = new ConfigEntity({}, { id: "0" }); + config = (await ConfigEntity.findOne({ id: "0" })) || new ConfigEntity({}, { id: "0" }); + return this.set((config.value || {}).merge(DefaultConfigOptions)); }, get: function get() { diff --git a/util/src/util/Permissions.ts b/util/src/util/Permissions.ts index 5082d8ea..ab6aa795 100644 --- a/util/src/util/Permissions.ts +++ b/util/src/util/Permissions.ts @@ -212,18 +212,15 @@ export async function getPermission(user_id?: string, guild_id?: string, channel var guild: Guild | undefined; if (channel_id) { - channel = await Channel.findOneOrFail( - { id: channel_id }, - { select: ["permission_overwrites", "recipients", "owner", "guild"] } - ); + channel = await Channel.findOneOrFail({ id: channel_id }); if (channel.guild_id) guild_id = channel.guild_id; // derive guild_id from the channel } if (guild_id) { - guild = await Guild.findOneOrFail({ id: guild_id }, { select: ["owner"] }); + guild = await Guild.findOneOrFail({ id: guild_id }); if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR); - member = await Member.findOneOrFail({ guild_id, id: user_id }, { select: ["roles"] }); + member = await Member.findOneOrFail({ where: { guild_id, id: user_id }, relations: ["roles"] }); } var permission = Permissions.finalPermission({ |