From 722c1e884cfb2aa2dc8bc2bc3f1ec632b1c12558 Mon Sep 17 00:00:00 2001 From: Skillz Date: Sat, 11 Jul 2020 13:22:10 -0400 Subject: [PATCH] fix create role bug --- handlers/guild.ts | 6 +++++- module/requestManager.ts | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/handlers/guild.ts b/handlers/guild.ts index aa35ee36a..6061805ca 100644 --- a/handlers/guild.ts +++ b/handlers/guild.ts @@ -218,7 +218,11 @@ export async function createGuildRole( endpoints.GUILD_ROLES(guild.id), { ...options, - permissions: options.permissions?.map((perm) => Permissions[perm]), + permissions: options.permissions + ?.reduce((subtotal, perm) => { + subtotal |= Permissions[perm]; + return subtotal; + }, 0), reason, }, ); diff --git a/module/requestManager.ts b/module/requestManager.ts index ce1c9672c..a71358a08 100644 --- a/module/requestManager.ts +++ b/module/requestManager.ts @@ -3,6 +3,7 @@ import { authorization, eventHandlers } from "./client.ts"; import { delay } from "https://deno.land/std@0.50.0/async/delay.ts"; import { Errors } from "../types/errors.ts"; import { HttpResponseCode } from "../types/discord.ts"; +import { logRed } from "../utils/logger.ts"; const queue: QueuedRequest[] = []; const ratelimitedPaths = new Map(); @@ -136,7 +137,7 @@ async function runMethod( const response = await fetch(url, createRequestBody(body, method)); const bucketIDFromHeaders = processHeaders(url, response.headers); - handleStatusCode(response.status); + handleStatusCode(response); // Sometimes Discord returns an empty 204 response that can't be made to JSON. if (response.status === 204) resolve(); @@ -187,7 +188,9 @@ async function runMethod( }); } -function handleStatusCode(status: number) { +function handleStatusCode(response: Response) { + const status = response.status; + if ( (status >= 200 && status < 400) || status === HttpResponseCode.TooManyRequests @@ -195,6 +198,8 @@ function handleStatusCode(status: number) { return true; } + logRed(response); + switch (status) { case HttpResponseCode.BadRequest: case HttpResponseCode.Unauthorized: