Skip to main content
Module

x/discordeno/rest/processRequest.ts

Discord API library for Deno
Go to Latest
File
import { RestManager } from "../bot.ts";import { BASE_URL } from "../util/constants.ts";import { RestPayload, RestRequest } from "./rest.ts";
/** Processes a request and assigns it to a queue or creates a queue if none exists for it. */export function processRequest(rest: RestManager, request: RestRequest, payload: RestPayload) { const route = request.url.substring(request.url.indexOf("api/")); const parts = route.split("/"); // REMOVE THE API parts.shift(); // REMOVES THE VERSION NUMBER if (parts[0]?.startsWith("v")) parts.shift(); // SET THE NEW REQUEST URL request.url = `${BASE_URL}/v${rest.version}/${parts.join("/")}`; // REMOVE THE MAJOR PARAM parts.shift();
const url = rest.simplifyUrl(request.url, request.method);
const queue = rest.pathQueues.get(url); if (queue) { queue.requests.push({ request, payload }); } else { // CREATES A NEW QUEUE rest.pathQueues.set(url, { isWaiting: false, requests: [ { request, payload, }, ], }); rest.processQueue(rest, url); }}