Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/util/entities/Channel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,12 @@ export class Channel extends BaseClass {
}

toJSON() {
// needed as some CHANNEL_UPDATE event doesn't call the calculatePosition function and doesn't populate
// the position field. Needs to be looked into more
// TODO: Look into when this can be undefined during CHANNEL_UPDATE
if (this.position === undefined) {
this.position = 0;
}
return {
...this,

Expand Down
24 changes: 24 additions & 0 deletions src/util/entities/Message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export class Message extends BaseClass {
@Column({ nullable: true })
@RelationId((message: Message) => message.channel)
@Index()
@JsonRemoveEmpty
channel_id?: string;

@JoinColumn({ name: "channel_id" })
Expand All @@ -51,75 +52,91 @@ export class Message extends BaseClass {

@Column({ nullable: true })
@RelationId((message: Message) => message.thread)
@JsonRemoveEmpty
thread_id?: string;

@JoinColumn({ name: "thread_id" })
@ManyToOne(() => Channel, {
onDelete: "CASCADE",
})
@JsonRemoveEmpty
thread?: Channel;

@Column({ nullable: true })
@RelationId((message: Message) => message.guild)
@JsonRemoveEmpty
guild_id?: string;

@JoinColumn({ name: "guild_id" })
@ManyToOne(() => Guild, {
onDelete: "CASCADE",
})
@JsonRemoveEmpty
guild?: Guild;

@Column({ nullable: true })
@RelationId((message: Message) => message.author)
@Index()
@JsonRemoveEmpty
author_id?: string;

@JoinColumn({ name: "author_id", referencedColumnName: "id" })
@ManyToOne(() => User, {
onDelete: "CASCADE",
})
@JsonRemoveEmpty
author?: User;

@Column({ nullable: true })
@RelationId((message: Message) => message.member)
@JsonRemoveEmpty
member_id?: string;

@JoinColumn({ name: "member_id", referencedColumnName: "id" })
@ManyToOne(() => User, {
onDelete: "CASCADE",
})
@JsonRemoveEmpty
member?: Member;

@Column({ nullable: true })
@RelationId((message: Message) => message.webhook)
@JsonRemoveEmpty
webhook_id?: string;

@JoinColumn({ name: "webhook_id" })
@ManyToOne(() => Webhook)
@JsonRemoveEmpty
webhook?: Webhook;

@Column({ nullable: true })
@RelationId((message: Message) => message.application)
@JsonRemoveEmpty
application_id?: string;

@JoinColumn({ name: "application_id" })
@ManyToOne(() => Application)
@JsonRemoveEmpty
application?: Application;

@Column({ nullable: true })
@JsonRemoveEmpty
content?: string;

@Column()
@CreateDateColumn()
timestamp: Date;

@Column({ nullable: true })
@JsonRemoveEmpty
edited_timestamp?: Date;

@Column({ nullable: true })
@JsonRemoveEmpty
tts?: boolean;

@Column({ nullable: true })
@JsonRemoveEmpty
mention_everyone?: boolean;

@JoinTable({ name: "message_user_mentions" })
Expand Down Expand Up @@ -157,9 +174,11 @@ export class Message extends BaseClass {
reactions: Reaction[];

@Column({ type: "text", nullable: true })
@JsonRemoveEmpty
nonce?: string;

@Column({ nullable: true, type: Date })
@JsonRemoveEmpty
pinned_at?: Date | null;

get pinned(): boolean {
Expand All @@ -179,6 +198,7 @@ export class Message extends BaseClass {
flags: number;

@Column({ type: "simple-json", nullable: true })
@JsonRemoveEmpty
message_reference?: {
message_id?: string;
channel_id?: string;
Expand All @@ -191,13 +211,15 @@ export class Message extends BaseClass {
referenced_message?: Message | null;

@Column({ type: "simple-json", nullable: true })
@JsonRemoveEmpty
interaction?: {
id: string;
type: InteractionType;
name: string;
};

@Column({ type: "simple-json", nullable: true })
@JsonRemoveEmpty
interaction_metadata?: {
id: string;
type: InteractionType;
Expand All @@ -216,9 +238,11 @@ export class Message extends BaseClass {
poll?: Poll;

@Column({ nullable: true })
@JsonRemoveEmpty
username?: string;

@Column({ nullable: true })
@JsonRemoveEmpty
avatar?: string;

@Column({ default: "[]", type: "simple-json" })
Expand Down
Loading