Files
custom_discordjs/structures/guilds/guildInvite.js
T

65 lines
1.5 KiB
JavaScript
Raw Normal View History

2023-04-02 09:49:47 -04:00
import author from '../messages/User.js';
import Guild from './Guild.js'
import { Channel } from './Channel.js';
import axios from 'axios';
2023-04-07 19:13:15 -04:00
import { BaseStruct } from '../baseStruct.js';
2023-04-07 19:13:15 -04:00
export default class invite extends BaseStruct {
#token;
code;
/** @type {Guild} */
guild;
/** @type {Channel?} */
channel;
/** @type {member?} */
inviter;
/** @type {EpochTimeStamp} */
expires_at;
/** @type {Number} */
uses;
/** @type {Number} */
max_uses;
/** @type {Number} */
max_age;
/** @type {Boolean} */
temporary;
/** @type {String} */
created_at;
async delete() {
return new Promise(async (resolve) => {
2023-04-02 09:49:47 -04:00
try {
const headers = { Authorization: this.#token }
const response = await axios.delete(`https://discord.com/api/invites/${this.code}`, { headers });
resolve(response.data);
} catch (err) {
throw err.data;
}
});
}
constructor(o, guild, token) {
2023-04-07 19:13:15 -04:00
super();
this.#token = token;
for (const k in this) {
if (o[k]) {
if (k == 'guild') { this.guild = guild }
2023-04-02 09:49:47 -04:00
// else if (k == 'channel') { this.channel = this.guild.channels.cache?.get(o[k]['id']); }
else if (k == 'inviter') { this.inviter = new author(o[k]); }
else { this[k] = o[k]; }
} else { this[k] = 0; }
}
}
}