@ly-nld/dishook
Version:
Simple Discord Webhook Wrapper
102 lines (101 loc) • 2.89 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Webhook = void 0;
const tslib_1 = require("tslib");
const axios_1 = tslib_1.__importDefault(require("axios"));
const Request_1 = require("./Request");
class Webhook {
constructor(hookUrl) {
this.client = new Request_1.Request(axios_1.default.create({
baseURL: hookUrl,
}));
}
setAvatarUrl(url) {
this.avatar_url = url;
return this;
}
setUsername(username) {
this.username = username;
return this;
}
setContent(content) {
this.content = content;
return this;
}
addEmbed(embed) {
if (typeof this.content === 'undefined')
this.embeds = [embed.toObject()];
return this;
}
setTTS(tts) {
this.tts = tts;
return this;
}
setFile(file) {
this.file = file;
return this;
}
send() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.client
.send('post', this.toObject())
.then((res) => res)
.catch((err) => err);
});
}
get() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.client
.send('get', {})
.then((res) => res)
.catch((err) => err);
});
}
modify(options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.client
.send('patch', options)
.then((res) => res)
.catch((err) => err);
});
}
delete() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.client
.send('delete', {})
.then((res) => res)
.catch((err) => err);
});
}
toObject() {
const obj = {};
if (this.content)
obj.content = this.content;
if (this.username)
obj.username = this.username;
if (this.avatar_url)
obj.avatar_url = this.avatar_url;
if (this.tts)
obj.tts = this.tts;
if (this.file)
obj.file = this.file;
if (this.embeds)
obj.embeds = this.embeds;
return obj;
}
static getWebhook(id, token) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return axios_1.default.get(`https://discord.com/api/webhooks/${id}/${token}`);
});
}
isValid() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.client.send('get', {}).then((res) => {
if (res)
return true;
return false;
});
});
}
}
exports.Webhook = Webhook;