erium
Version:
Erium is Discord Bot Library made in typescript
64 lines (63 loc) • 2.5 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RequestHandler = void 0;
const axios_1 = __importDefault(require("axios"));
class RequestHandler {
constructor(client) {
this.client = client;
this.instance = axios_1.default.create({
// @ts-ignore
baseURL: this.BASE_URL,
timeout: 1000,
headers: {
"Authorization": client.token
}
});
}
async request(method, url, data) {
const response = await this.instance({
url: url,
method: method,
data: data
}).catch(err => {
switch (err.code) {
case "400":
return new Error("Bad Request (code: 400)" + method + url + data + err.code);
break;
case "401":
return new Error("Unauthorized (code: 401)" + method + url + data + err.code);
break;
case "402":
break;
case "403":
return new Error("Forbidden (code: 403)" + method + url + data + err.code);
break;
case "404":
return new Error("Not Found (code: 404)" + method + url + data + err.code);
break;
case "405":
return new Error("Method not Allowed (code: 405)" + method + url + data + err.code);
break;
case "429":
return new Error("Too many Requests (code: 429)" + method + url + data + err.code);
break;
case "502":
return new Error("Gateway Unavailable (code: 502)" + method + url + data + err.code);
break;
default:
return new Error(`Unknown error Code (code: ${err.code})` + method + url + data + err.code);
break;
}
});
if (response instanceof Error)
return response;
if (response)
return response.data;
else
return new Error("no response from api" + method + url + data);
}
}
exports.RequestHandler = RequestHandler;