diff --git "a/src/api/routes/channels/\043channel_id/invites.ts" "b/src/api/routes/channels/\043channel_id/invites.ts"
index ae32e80..3bb3719 100644
--- "a/src/api/routes/channels/\043channel_id/invites.ts"
+++ "b/src/api/routes/channels/\043channel_id/invites.ts"
@@ -1,17 +1,17 @@
/*
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
Copyright (C) 2023 Spacebar and Spacebar Contributors
-
+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
-
+
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
@@ -84,7 +84,7 @@
}).save();
const data = invite.toJSON();
- data.inviter = (await User.getPublicUser(req.user_id)).toPublicUser();
+ data.inviter = await User.getPublicUser(req.user_id);
data.guild = await Guild.findOne({ where: { id: guild_id } });
data.channel = channel;
diff --git "a/src/api/routes/users/\043id/profile.ts" "b/src/api/routes/users/\043id/profile.ts"
index 44271ca..6d727dc 100644
--- "a/src/api/routes/users/\043id/profile.ts"
+++ "b/src/api/routes/users/\043id/profile.ts"
@@ -41,7 +41,10 @@
const { guild_id, with_mutual_guilds } = req.query;
- const user = await User.getPublicUser(req.params.id, {
+ const user = await User.findOneOrFail({
+ where: {
+ id: req.params.id,
+ },
relations: ["connected_accounts"],
});
diff --git a/src/api/util/handlers/Message.ts b/src/api/util/handlers/Message.ts
index f037417..2569320 100644
--- a/src/api/util/handlers/Message.ts
+++ b/src/api/util/handlers/Message.ts
@@ -87,7 +87,9 @@
}
if (opts.author_id) {
- message.author = await User.getPublicUser(opts.author_id);
+ message.author = await User.findOneOrFail({
+ where: { id: opts.author_id },
+ });
const rights = await getRights(opts.author_id);
rights.hasThrow("SEND_MESSAGES");
}
diff --git a/src/gateway/opcodes/LazyRequest.ts b/src/gateway/opcodes/LazyRequest.ts
index 45eaccf..c58642b 100644
--- a/src/gateway/opcodes/LazyRequest.ts
+++ b/src/gateway/opcodes/LazyRequest.ts
@@ -238,7 +238,7 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
if (session?.status == "unknown") session.status = "online";
- const user = (await User.getPublicUser(x)).toPublicUser(); // why is this needed?
+ const user = await User.getPublicUser(x);
return Send(this, {
op: OPCODES.Dispatch,
diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts
index 0323de5..89061e7 100644
--- a/src/util/entities/User.ts
+++ b/src/util/entities/User.ts
@@ -279,14 +279,12 @@
return user as UserPrivate;
}
- static async getPublicUser(user_id: string, opts?: FindOneOptions) {
- return await User.findOneOrFail({
+ static async getPublicUser(user_id: string): Promise {
+ const user = await User.findOneOrFail({
where: { id: user_id },
- ...opts,
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- //@ts-ignore
- select: [...PublicUserProjection, ...(opts?.select || [])], // TODO: fix
+ select: PublicUserProjection,
});
+ return user.toPublicUser();
}
public static async generateDiscriminator(