diff --git a/src/api/routes/channels/#channel_id/messages/pins/index.ts b/src/api/routes/channels/#channel_id/messages/pins/index.ts
index 3e04b157..3dd10ee4 100644
--- a/src/api/routes/channels/#channel_id/messages/pins/index.ts
+++ b/src/api/routes/channels/#channel_id/messages/pins/index.ts
@@ -28,6 +28,7 @@ import {
User,
} from "@spacebar/util";
import { Request, Response, Router } from "express";
+import { IsNull, Not } from "typeorm";
const router: Router = Router();
@@ -184,13 +185,10 @@ router.get(
async (req: Request, res: Response) => {
const { channel_id } = req.params;
- const pins = await Message.createQueryBuilder("message")
- .leftJoinAndSelect("message.channel", "channel")
- .leftJoinAndSelect("message.author", "author")
- .where("channel.id = :channelId", { channelId: channel_id })
- .andWhere("message.pinned_at IS NOT NULL")
- .orderBy("message.pinned_at", "DESC")
- .getMany();
+ const pins = await Message.find({
+ where: { channel_id: channel_id, pinned_at: Not(IsNull()) },
+ relations: ["author"],
+ });
const items = pins.map((message: Message) => ({
message,
diff --git a/src/api/routes/channels/#channel_id/pins.ts b/src/api/routes/channels/#channel_id/pins.ts
index a8790eab..c45c8853 100644
--- a/src/api/routes/channels/#channel_id/pins.ts
+++ b/src/api/routes/channels/#channel_id/pins.ts
@@ -28,6 +28,7 @@ import {
User,
} from "@spacebar/util";
import { Request, Response, Router } from "express";
+import { IsNull, Not } from "typeorm";
const router: Router = Router();
@@ -56,13 +57,10 @@ router.put(
// * in dm channels anyone can pin messages -> only check for guilds
if (message.guild_id) req.permission?.hasThrow("MANAGE_MESSAGES");
- const pinned_count = await Message.createQueryBuilder("message")
- .leftJoinAndSelect("message.channel", "channel")
- .leftJoinAndSelect("message.author", "author")
- .where("channel.id = :channelId", { channelId: channel_id })
- .andWhere("message.pinned_at IS NOT NULL")
- .orderBy("message.pinned_at", "DESC")
- .getCount();
+ const pinned_count = await Message.count({
+ where: { channel: { id: channel_id }, pinned_at: Not(IsNull()) },
+ });
+
const { maxPins } = Config.get().limits.channel;
if (pinned_count >= maxPins)
throw DiscordApiErrors.MAXIMUM_PINS.withParams(maxPins);
@@ -184,13 +182,10 @@ router.get(
async (req: Request, res: Response) => {
const { channel_id } = req.params;
- const pins = await Message.createQueryBuilder("message")
- .leftJoinAndSelect("message.channel", "channel")
- .leftJoinAndSelect("message.author", "author")
- .where("channel.id = :channelId", { channelId: channel_id })
- .andWhere("message.pinned_at IS NOT NULL")
- .orderBy("message.pinned_at", "DESC")
- .getMany();
+ const pins = await Message.find({
+ where: { channel_id: channel_id, pinned_at: Not(IsNull()) },
+ relations: ["author"],
+ });
res.send(pins);
},
|