mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 04:23:31 +01:00
refactor(APIRequest): utilize URLSearchParams (#3180)
* utilize URLSearchParams * options.query can be undefined/null * oops * remembered what I intended
This commit is contained in:
@@ -338,11 +338,15 @@ class Client extends BaseClient {
|
|||||||
* .then(link => console.log(`Generated bot invite link: ${link}`))
|
* .then(link => console.log(`Generated bot invite link: ${link}`))
|
||||||
* .catch(console.error);
|
* .catch(console.error);
|
||||||
*/
|
*/
|
||||||
generateInvite(permissions) {
|
async generateInvite(permissions) {
|
||||||
permissions = Permissions.resolve(permissions);
|
permissions = Permissions.resolve(permissions);
|
||||||
return this.fetchApplication().then(application =>
|
const application = await this.fetchApplication();
|
||||||
`https://discordapp.com/oauth2/authorize?client_id=${application.id}&permissions=${permissions}&scope=bot`
|
const query = new URLSearchParams({
|
||||||
);
|
client_id: application.id,
|
||||||
|
permissions: permissions,
|
||||||
|
scope: 'bot',
|
||||||
|
});
|
||||||
|
return `${this.options.http.api}${this.api.oauth2.authorize}?${query}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
toJSON() {
|
toJSON() {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const querystring = require('querystring');
|
|
||||||
const FormData = require('form-data');
|
const FormData = require('form-data');
|
||||||
const https = require('https');
|
const https = require('https');
|
||||||
const { browser, UserAgent } = require('../util/Constants');
|
const { browser, UserAgent } = require('../util/Constants');
|
||||||
@@ -16,8 +15,13 @@ class APIRequest {
|
|||||||
this.route = options.route;
|
this.route = options.route;
|
||||||
this.options = options;
|
this.options = options;
|
||||||
|
|
||||||
const queryString = (querystring.stringify(options.query).match(/[^=&?]+=[^=&?]+/g) || []).join('&');
|
let queryString = '';
|
||||||
this.path = `${path}${queryString ? `?${queryString}` : ''}`;
|
if (options.query) {
|
||||||
|
// Filter out undefined query options
|
||||||
|
const query = Object.entries(options.query).filter(([, value]) => typeof value !== 'undefined');
|
||||||
|
queryString = new URLSearchParams(query).toString();
|
||||||
|
}
|
||||||
|
this.path = `${path}${queryString && `?${queryString}`}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
make() {
|
make() {
|
||||||
|
|||||||
Reference in New Issue
Block a user