constatic
Version:
Constatic is a CLI for creating and managing modern TypeScript projects, providing an organized structure and features that streamline development.
57 lines (56 loc) • 1.72 kB
JavaScript
// src/helpers/discord/emojis.ts
import { Result } from "#lib/result.js";
var baseURL = "https://discord.com/api/v10";
async function getDiscordEmojis(token) {
const response = await fetch(`${baseURL}/applications/${token.id}/emojis`, {
headers: { Authorization: `Bot ${token.token}` }
});
if (response.status !== 200) {
return Result.fail("The provided token is invalid");
}
const data = await response.json();
return Result.ok(data.items);
}
async function createDiscordEmoji(token, props) {
const response = await fetch(`${baseURL}/applications/${token.id}/emojis`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bot ${token.token}`
},
body: JSON.stringify(props)
});
const data = await response.json();
if (response.status === 400 && data.code && data.code === 50035) {
return Result.fail(data.code, 1);
}
if (!response.ok) {
return Result.fail(data.message ?? response.statusText);
}
return Result.ok(data);
}
async function deleteDiscordEmoji(token, id) {
const response = await fetch(`${baseURL}/applications/${token.id}/emojis/${id}`, {
method: "DELETE",
headers: {
"Content-Type": "application/json",
Authorization: `Bot ${token.token}`
}
});
if (response.status !== 204) {
return Result.fail(response.statusText);
}
return Result.ok(true);
}
function formatEmojiName(name) {
return name.trim().replaceAll(" ", "_").replaceAll("-", "_").split("_").filter((w) => w.length).join("_").toLowerCase();
}
var discordEmojis = {
get: getDiscordEmojis,
create: createDiscordEmoji,
delete: deleteDiscordEmoji,
formatName: formatEmojiName
};
export {
discordEmojis
};