Add options.api_request_method

This commit is contained in:
Amish Shah
2016-08-19 18:15:13 +01:00
parent dcba580d89
commit 00be14b5d1
2 changed files with 14 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ const UserAgentManager = require('./UserAgentManager');
const RESTMethods = require('./RESTMethods');
const SequentialRequestHandler = require('./RequestHandlers/Sequential');
const APIRequest = require('./APIRequest');
const Constants = require('../../util/Constants');
class RESTManager {
@@ -23,11 +24,21 @@ class RESTManager {
});
}
getRequestHandler() {
switch (this.client.options.api_request_method) {
case 'sequential':
return SequentialRequestHandler;
default:
throw Constants.Errors.INVALID_RATE_LIMIT_METHOD;
}
}
makeRequest(method, url, auth, data, file) {
const apiRequest = new APIRequest(this, method, url, auth, data, file);
if (!this.handlers[apiRequest.getEndpoint()]) {
this.handlers[apiRequest.getEndpoint()] = new SequentialRequestHandler(this);
const RequestHandlerType = this.getRequestHandler();
this.handlers[apiRequest.getEndpoint()] = new RequestHandlerType(this);
}
return this.push(this.handlers[apiRequest.getEndpoint()], apiRequest);

View File

@@ -13,6 +13,7 @@ exports.DefaultOptions = {
protocol_version: 6,
max_message_cache: 200,
rest_ws_bridge_timeout: 5000,
api_request_method: 'sequential',
};
exports.Status = {
@@ -37,6 +38,7 @@ exports.Errors = {
BAD_WS_MESSAGE: new Error('a bad message was received from the websocket - bad compression or not json'),
TOOK_TOO_LONG: new Error('something took too long to do'),
NOT_A_PERMISSION: new Error('that is not a valid permission number'),
INVALID_RATE_LIMIT_METHOD: new Error('unknown rate limiting method'),
};
const API = 'https://discordapp.com/api';