diff --git a/src/api/routes/applications/#id/index.ts b/src/api/routes/applications/#id/index.ts
index 949d66f86..2b4bcd882 100644
--- a/src/api/routes/applications/#id/index.ts
+++ b/src/api/routes/applications/#id/index.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 <https://www.gnu.org/licenses/>.
*/
@@ -21,6 +21,7 @@ import {
Application,
ApplicationModifySchema,
DiscordApiErrors,
+ Guild,
handleFile,
} from "@spacebar/util";
import { Request, Response, Router } from "express";
@@ -90,6 +91,24 @@ router.patch(
body.icon as string,
);
}
+ if (body.cover_image) {
+ body.cover_image = await handleFile(
+ `/app-icons/${app.id}`,
+ body.cover_image as string,
+ );
+ }
+
+ if (body.guild_id) {
+ const guild = await Guild.findOneOrFail({
+ where: { id: body.guild_id },
+ select: ["owner_id"],
+ });
+ if (guild.owner_id != req.user_id)
+ throw new HTTPError(
+ "You must be the owner of the guild to link it to an application",
+ 400,
+ );
+ }
if (app.bot) {
app.bot.assign({ bio: body.description });
|