summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2022-08-09 23:44:48 +0200
committerTheArcaneBrony <myrainbowdash949@gmail.com>2022-08-09 23:52:09 +0200
commit6765bfafa76bbc5a56c1c01da22281d3673f665d (patch)
tree4d7255cdb0f5638fa7ccfc65391fc10c1779438f
parentAdd index in member query, fixes missing column in query (diff)
downloadserver-6765bfafa76bbc5a56c1c01da22281d3673f665d.tar.xz
fix(util): util imports
-rw-r--r--util/src/entities/Channel.ts58
-rw-r--r--util/src/entities/Guild.ts10
-rw-r--r--util/src/entities/Member.ts14
-rw-r--r--util/src/entities/User.ts5
-rw-r--r--util/src/util/Config.ts2
-rw-r--r--util/src/util/index.ts4
6 files changed, 48 insertions, 45 deletions
diff --git a/util/src/entities/Channel.ts b/util/src/entities/Channel.ts
index 48469103..35f1956c 100644
--- a/util/src/entities/Channel.ts
+++ b/util/src/entities/Channel.ts
@@ -1,9 +1,9 @@
-import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId} from "typeorm";

-import { OrmUtils } from "@fosscord/util";

+import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId } from "typeorm";

+import { OrmUtils } from "typeorm/util/OrmUtils";

 import { BaseClass } from "./BaseClass";

 import { Guild } from "./Guild";

 import { PublicUserProjection, User } from "./User";

-import { HTTPError } from "..";

+import { HTTPError } from "../util/imports/HTTPError";

 import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util";

 import { ChannelCreateEvent, ChannelRecipientRemoveEvent } from "../interfaces";

 import { Recipient } from "./Recipient";

@@ -35,7 +35,7 @@ export enum ChannelType {
 	KANBAN = 34, // confluence like kanban board

 	VOICELESS_WHITEBOARD = 35, // whiteboard but without voice (whiteboard + voice is the same as stage)

 	CUSTOM_START = 64, // start custom channel types from here

-	UNHANDLED = 255 // unhandled unowned pass-through channel type

+	UNHANDLED = 255, // unhandled unowned pass-through channel type

 }

 

 @Entity("channels")

@@ -150,7 +150,7 @@ export class Channel extends BaseClass {
 		orphanedRowAction: "delete",

 	})

 	webhooks?: Webhook[];

-	

+

 	// TODO: DM channel

 	static async createChannel(

 		channel: Partial<Channel>,

@@ -177,16 +177,14 @@ export class Channel extends BaseClass {
 						throw new HTTPError("Channel name cannot include invalid characters", 403);

 

 				if (channel.name.match(/\-\-+/g))

-					throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403)

+					throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403);

 

-				if (channel.name.charAt(0) === "-" ||

-					channel.name.charAt(channel.name.length - 1) === "-")

-					throw new HTTPError("Channel name cannot start/end with dash.", 403)

+				if (channel.name.charAt(0) === "-" || channel.name.charAt(channel.name.length - 1) === "-")

+					throw new HTTPError("Channel name cannot start/end with dash.", 403);

 			}

 

 			if (!guild.features.includes("ALLOW_UNNAMED_CHANNELS")) {

-				if (!channel.name)

-					throw new HTTPError("Channel name cannot be empty.", 403);

+				if (!channel.name) throw new HTTPError("Channel name cannot be empty.", 403);

 			}

 		}

 

@@ -223,13 +221,13 @@ export class Channel extends BaseClass {
 		};

 

 		await Promise.all([

-			OrmUtils.mergeDeep(new Channel(),channel).save(),

+			OrmUtils.mergeDeep(new Channel(), channel).save(),

 			!opts?.skipEventEmit

 				? emitEvent({

-					event: "CHANNEL_CREATE",

-					data: channel,

-					guild_id: channel.guild_id,

-				} as ChannelCreateEvent)

+						event: "CHANNEL_CREATE",

+						data: channel,

+						guild_id: channel.guild_id,

+				  } as ChannelCreateEvent)

 				: Promise.resolve(),

 		]);

 

@@ -274,17 +272,21 @@ export class Channel extends BaseClass {
 		if (channel == null) {

 			name = trimSpecial(name);

 

-			channel = await (OrmUtils.mergeDeep(new Channel(), {

-				name,

-				type,

-				owner_id: type === ChannelType.DM ? undefined : null, // 1:1 DMs are ownerless in fosscord-server

-				created_at: new Date(),

-				last_message_id: null,

-				recipients: channelRecipients.map(

-					(x) =>

-						OrmUtils.mergeDeep(new Recipient(), { user_id: x, closed: !(type === ChannelType.GROUP_DM || x === creator_user_id) })

-				),

-			}) as Channel).save();

+			channel = await (

+				OrmUtils.mergeDeep(new Channel(), {

+					name,

+					type,

+					owner_id: type === ChannelType.DM ? undefined : null, // 1:1 DMs are ownerless in fosscord-server

+					created_at: new Date(),

+					last_message_id: null,

+					recipients: channelRecipients.map((x) =>

+						OrmUtils.mergeDeep(new Recipient(), {

+							user_id: x,

+							closed: !(type === ChannelType.GROUP_DM || x === creator_user_id),

+						})

+					),

+				}) as Channel

+			).save();

 		}

 

 		const channel_dto = await DmChannelDTO.from(channel);

@@ -301,7 +303,7 @@ export class Channel extends BaseClass {
 			await emitEvent({ event: "CHANNEL_CREATE", data: channel_dto, user_id: creator_user_id });

 		}

 

-		if (recipients.length === 1) return channel_dto; 

+		if (recipients.length === 1) return channel_dto;

 		else return channel_dto.excludedRecipients([creator_user_id]);

 	}

 

diff --git a/util/src/entities/Guild.ts b/util/src/entities/Guild.ts
index da8a2c2f..c314ecb9 100644
--- a/util/src/entities/Guild.ts
+++ b/util/src/entities/Guild.ts
@@ -1,5 +1,5 @@
-import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, OneToOne, RelationId} from "typeorm";
-import { OrmUtils } from "@fosscord/util";
+import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm";
+import { OrmUtils } from "typeorm/util/OrmUtils";
 import { Config, handleFile, Snowflake } from "..";
 import { Ban } from "./Ban";
 import { BaseClass } from "./BaseClass";
@@ -270,7 +270,7 @@ export class Guild extends BaseClass {
 
 	@Column({ nullable: true })
 	nsfw?: boolean;
-	
+
 	// TODO: nested guilds
 	@Column({ nullable: true })
 	parent?: string;
@@ -286,7 +286,7 @@ export class Guild extends BaseClass {
 	}) {
 		const guild_id = Snowflake.generate();
 
-		const guild: Guild = OrmUtils.mergeDeep(new Guild(),{
+		const guild: Guild = OrmUtils.mergeDeep(new Guild(), {
 			name: body.name || "Fosscord",
 			icon: await handleFile(`/icons/${guild_id}`, body.icon as string),
 			region: Config.get().regions.default,
@@ -334,7 +334,7 @@ export class Guild extends BaseClass {
 			permissions: String("2251804225"),
 			position: 0,
 			icon: null,
-			unicode_emoji: null
+			unicode_emoji: null,
 		});
 		await role.save();
 
diff --git a/util/src/entities/Member.ts b/util/src/entities/Member.ts
index f0c361d0..c356c26d 100644
--- a/util/src/entities/Member.ts
+++ b/util/src/entities/Member.ts
@@ -20,12 +20,12 @@ import {
 	GuildMemberRemoveEvent,
 	GuildMemberUpdateEvent,
 } from "../interfaces";
-import { HTTPError } from "..";
+import { HTTPError } from "../util/imports/HTTPError";
 import { Role } from "./Role";
 import { BaseClassWithoutId } from "./BaseClass";
 import { Ban, PublicGuildRelations } from ".";
 import { DiscordApiErrors } from "../util/Constants";
-import { OrmUtils } from "@fosscord/util";
+import { OrmUtils } from "typeorm/util/OrmUtils";
 
 export const MemberPrivateProjection: (keyof Member)[] = [
 	"id",
@@ -71,7 +71,7 @@ export class Member extends BaseClassWithoutId {
 
 	@Column({ nullable: true })
 	nick?: string;
-	
+
 	@JoinTable({
 		name: "member_roles",
 		joinColumn: { name: "index", referencedColumnName: "index" },
@@ -103,14 +103,14 @@ export class Member extends BaseClassWithoutId {
 
 	@Column({ nullable: true })
 	last_message_id?: string;
-	
+
 	/**
 	@JoinColumn({ name: "id" })
 	@ManyToOne(() => User, {
 		onDelete: "DO NOTHING",
 	// do not auto-kick force-joined members just because their joiners left the server
 	}) **/
-	@Column({ nullable: true})
+	@Column({ nullable: true })
 	joined_by?: string;
 
 	// TODO: add this when we have proper read receipts
@@ -129,7 +129,7 @@ export class Member extends BaseClassWithoutId {
 
 		// use promise all to execute all promises at the same time -> save time
 		//TODO: check for bugs
-		if(guild.member_count) guild.member_count--;
+		if (guild.member_count) guild.member_count--;
 		return Promise.all([
 			Member.delete({
 				id: user_id,
@@ -263,7 +263,7 @@ export class Member extends BaseClassWithoutId {
 			pending: false,
 		};
 		//TODO: check for bugs
-		if(guild.member_count) guild.member_count++;
+		if (guild.member_count) guild.member_count++;
 		await Promise.all([
 			OrmUtils.mergeDeep(new Member(), {
 				...member,
diff --git a/util/src/entities/User.ts b/util/src/entities/User.ts
index 3dc8dc96..7cd6c3d8 100644
--- a/util/src/entities/User.ts
+++ b/util/src/entities/User.ts
@@ -1,12 +1,11 @@
-import { Column, Entity, FindOneOptions, FindOptionsSelectByString, JoinColumn, ManyToMany, OneToMany, RelationId} from "typeorm";
-import { OrmUtils } from "@fosscord/util";
+import { Column, Entity, FindOneOptions, FindOptionsSelectByString, JoinColumn, OneToMany } from "typeorm";
+import { OrmUtils } from "typeorm/util/OrmUtils";
 import { BaseClass } from "./BaseClass";
 import { BitField } from "../util/BitField";
 import { Relationship } from "./Relationship";
 import { ConnectedAccount } from "./ConnectedAccount";
 import { Config, FieldErrors, Snowflake, trimSpecial } from "..";
 import { Member, Session } from ".";
-import { Note } from "./Note";
 
 export enum PublicUserEnum {
 	username,
diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts
index 97a73858..587e9235 100644
--- a/util/src/util/Config.ts
+++ b/util/src/util/Config.ts
@@ -5,7 +5,7 @@ import fs from "fs";
 // TODO: yaml instead of json
 // const overridePath = path.join(process.cwd(), "config.json");
 
-let config: ConfigValue;
+let config: ConfigValue = DefaultConfigOptions;
 let pairs: ConfigEntity[];
 
 // TODO: use events to inform about config updates
diff --git a/util/src/util/index.ts b/util/src/util/index.ts
index cfad53f3..9e6059fa 100644
--- a/util/src/util/index.ts
+++ b/util/src/util/index.ts
@@ -1,6 +1,8 @@
 export * from "./ApiError";
 export * from "./BitField";
 export * from "./Token";
+export * from "./imports/HTTPError";
+export * from "./imports/OrmUtils";
 //export * from "./Categories";
 export * from "./cdn";
 export * from "./Config";
@@ -21,4 +23,4 @@ export * from "./Array";
 export * from "./TraverseDirectory";
 export * from "./InvisibleCharacters";
 
-export * from "./imports/index"
+export * from "./imports/index";