summary refs log tree commit diff
path: root/api/src/routes
diff options
context:
space:
mode:
authorChris Chrome <christophercookman@gmail.com>2022-01-05 05:44:14 -0500
committerGitHub <noreply@github.com>2022-01-05 13:44:14 +0300
commitaaf5df14e1523ef70fcb9aa5ff9fc0b73ff42fee (patch)
tree63c49b6d70dce0cfe70528d0e1aa2411c85b2d51 /api/src/routes
parentUpdate documents (diff)
downloadserver-aaf5df14e1523ef70fcb9aa5ff9fc0b73ff42fee.tar.xz
Add Role Icons (#574)
* Role Icons

Co-authored-by: Erkin Alp Güney <erkinalp9035@gmail.com> 
*  Cache coherency rules

Co-authored-by: MANIKILLER <manikillrorg@gmail.com>
Co-authored-by: ImAaronFR <96433859+ImAaronFR@users.noreply.github.com>
Diffstat (limited to 'api/src/routes')
-rw-r--r--api/src/routes/guilds/#guild_id/roles.ts11
1 files changed, 9 insertions, 2 deletions
diff --git a/api/src/routes/guilds/#guild_id/roles.ts b/api/src/routes/guilds/#guild_id/roles.ts
index b1875598..b6894e3f 100644
--- a/api/src/routes/guilds/#guild_id/roles.ts
+++ b/api/src/routes/guilds/#guild_id/roles.ts
@@ -8,7 +8,8 @@ import {
 	GuildRoleDeleteEvent,
 	emitEvent,
 	Config,
-	DiscordApiErrors
+	DiscordApiErrors,
+	handleFile
 } from "@fosscord/util";
 import { HTTPError } from "lambert-server";
 import { route } from "@fosscord/api";
@@ -22,6 +23,8 @@ export interface RoleModifySchema {
 	hoist?: boolean; // whether the role should be displayed separately in the sidebar
 	mentionable?: boolean; // whether the role should be mentionable
 	position?: number;
+	icon?: string;
+	unicode_emoji?: string;
 }
 
 export type RolePositionUpdateSchema = {
@@ -58,7 +61,9 @@ router.post("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" })
 		guild_id: guild_id,
 		managed: false,
 		permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0")),
-		tags: undefined
+		tags: undefined,
+		icon: null,
+		unicode_emoji: null
 	});
 
 	await Promise.all([
@@ -105,6 +110,8 @@ router.patch("/:role_id", route({ body: "RoleModifySchema", permission: "MANAGE_
 	const { role_id, guild_id } = req.params;
 	const body = req.body as RoleModifySchema;
 
+	if (body.icon) body.icon = await handleFile(`/role-icons/${role_id}`, body.icon as string); 
+
 	const role = new Role({
 		...body,
 		id: role_id,