diff --git a/src/api/routes/oauth2/applications/@me.ts b/src/api/routes/oauth2/applications/@me.ts
index 2616502a..0c23bdb1 100644
--- a/src/api/routes/oauth2/applications/@me.ts
+++ b/src/api/routes/oauth2/applications/@me.ts
@@ -17,7 +17,11 @@
*/
import { route } from "@spacebar/api";
-import { Application } from "@spacebar/util";
+import {
+ Application,
+ DiscordApiErrors,
+ PublicUserProjection,
+} from "@spacebar/util";
import { Request, Response, Router } from "express";
const router: Router = Router();
@@ -29,18 +33,27 @@ router.get(
200: {
body: "Application",
},
- 400: {
- body: "APIErrorResponse",
- },
},
}),
async (req: Request, res: Response) => {
const app = await Application.findOneOrFail({
- where: { id: req.user_id },
- relations: ["owner", "bot"],
+ where: { id: req.params.id },
+ relations: ["bot", "owner"],
+ select: {
+ owner: Object.fromEntries(
+ PublicUserProjection.map((x) => [x, true]),
+ ),
+ },
+ });
+
+ if (!app.bot) throw DiscordApiErrors.BOT_ONLY_ENDPOINT;
+
+ res.json({
+ ...app,
+ owner: app.owner.toPublicUser(),
+ install_params:
+ app.install_params !== null ? app.install_params : undefined,
});
- return res.json(app);
},
);
-
export default router;
diff --git a/src/util/dtos/ReadyGuildDTO.ts b/src/util/dtos/ReadyGuildDTO.ts
index 905ede74..061959a6 100644
--- a/src/util/dtos/ReadyGuildDTO.ts
+++ b/src/util/dtos/ReadyGuildDTO.ts
@@ -229,7 +229,7 @@ export class ReadyGuildDTO implements IReadyGuildDTO {
nsfw: guild.nsfw,
safety_alerts_channel_id: null,
};
- this.roles = guild.roles;
+ this.roles = guild.roles.map((x) => x.toJSON());
this.stage_instances = [];
this.stickers = guild.stickers;
this.threads = [];
diff --git a/src/util/entities/Message.ts b/src/util/entities/Message.ts
index 3598d29f..b519099a 100644
--- a/src/util/entities/Message.ts
+++ b/src/util/entities/Message.ts
@@ -238,6 +238,7 @@ export class Message extends BaseClass {
activity: this.activity ?? undefined,
application: this.application ?? undefined,
components: this.components ?? undefined,
+ content: this.content ?? "",
};
}
}
diff --git a/src/util/entities/Role.ts b/src/util/entities/Role.ts
index e8e5feda..2783a279 100644
--- a/src/util/entities/Role.ts
+++ b/src/util/entities/Role.ts
@@ -69,4 +69,11 @@ export class Role extends BaseClass {
@Column({ default: 0 })
flags: number;
+
+ toJSON(): Role {
+ return {
+ ...this,
+ tags: this.tags ?? undefined,
+ };
+ }
}
|