removed templatestruct

This commit is contained in:
ITOH
2021-04-15 18:09:40 +02:00
parent 98bf292aff
commit 23a4c0f864
8 changed files with 28 additions and 84 deletions

View File

@@ -1,8 +1,8 @@
import { rest } from "../../rest/rest.ts";
import { structures } from "../../structures/mod.ts";
import { DiscordTemplate, Template } from "../../types/templates/template.ts";
import { endpoints } from "../../util/constants.ts";
import { requireBotGuildPermissions } from "../../util/permissions.ts";
import { snakeKeysToCamelCase } from "../../util/utils.ts";
/**
* Creates a template for the guild.
@@ -24,11 +24,11 @@ export async function createGuildTemplate(
throw new Error("The description can only be in between 0-120 characters.");
}
const template = (await rest.runMethod(
const template = await rest.runMethod<DiscordTemplate>(
"post",
endpoints.GUILD_TEMPLATES(guildId),
data,
)) as DiscordTemplate;
);
return structures.createTemplateStruct(template);
return snakeKeysToCamelCase<Template>(template);
}

View File

@@ -1,8 +1,8 @@
import { rest } from "../../rest/rest.ts";
import { structures } from "../../structures/mod.ts";
import { DiscordTemplate } from "../../types/templates/template.ts";
import { DiscordTemplate, Template } from "../../types/templates/template.ts";
import { endpoints } from "../../util/constants.ts";
import { requireBotGuildPermissions } from "../../util/permissions.ts";
import { snakeKeysToCamelCase } from "../../util/utils.ts";
/**
* Deletes a template from a guild.
@@ -14,10 +14,10 @@ export async function deleteGuildTemplate(
) {
await requireBotGuildPermissions(guildId, ["MANAGE_GUILD"]);
const deletedTemplate = (await rest.runMethod(
const deletedTemplate = await rest.runMethod<DiscordTemplate>(
"delete",
`${endpoints.GUILD_TEMPLATES(guildId)}/${templateCode}`,
)) as DiscordTemplate;
);
return structures.createTemplateStruct(deletedTemplate);
return snakeKeysToCamelCase<Template>(deletedTemplate);
}

View File

@@ -1,9 +1,9 @@
import { rest } from "../../rest/rest.ts";
import { structures } from "../../structures/mod.ts";
import { ModifyGuildTemplate } from "../../types/templates/modify_guild_template.ts";
import { DiscordTemplate } from "../../types/templates/template.ts";
import { DiscordTemplate, Template } from "../../types/templates/template.ts";
import { endpoints } from "../../util/constants.ts";
import { requireBotGuildPermissions } from "../../util/permissions.ts";
import { snakeKeysToCamelCase } from "../../util/utils.ts";
/**
* Edit a template's metadata.
@@ -24,11 +24,11 @@ export async function editGuildTemplate(
throw new Error("The description can only be in between 0-120 characters.");
}
const template = (await rest.runMethod(
const template = await rest.runMethod<DiscordTemplate>(
"patch",
`${endpoints.GUILD_TEMPLATES(guildId)}/${templateCode}`,
data,
)) as DiscordTemplate;
);
return structures.createTemplateStruct(template);
return snakeKeysToCamelCase<Template>(template);
}

View File

@@ -1,9 +1,9 @@
import { rest } from "../../rest/rest.ts";
import { structures } from "../../structures/mod.ts";
import { DiscordTemplate, Template } from "../../types/templates/template.ts";
import { Collection } from "../../util/collection.ts";
import { endpoints } from "../../util/constants.ts";
import { requireBotGuildPermissions } from "../../util/permissions.ts";
import { DiscordTemplate } from "../../types/templates/template.ts";
import { Collection } from "../../util/collection.ts";
import { snakeKeysToCamelCase } from "../../util/utils.ts";
/**
* Returns an array of templates.
@@ -20,7 +20,7 @@ export async function getGuildTemplates(guildId: string) {
return new Collection(
templates.map((template) => [
template.code,
structures.createTemplateStruct(template),
snakeKeysToCamelCase<Template>(template),
]),
);
}

View File

@@ -1,15 +1,14 @@
import { rest } from "../../rest/rest.ts";
import { structures } from "../../structures/mod.ts";
import { DiscordTemplate, Template } from "../../types/templates/template.ts";
import { endpoints } from "../../util/constants.ts";
import { DiscordTemplate } from "../../types/templates/template.ts";
import { snakeKeysToCamelCase } from "../../util/utils.ts";
/** Returns the guild template if it exists */
export async function getTemplate(templateCode: string) {
const result = (await rest.runMethod(
const template = await rest.runMethod<DiscordTemplate>(
"get",
endpoints.GUILD_TEMPLATE(templateCode),
) as DiscordTemplate);
const template = await structures.createTemplateStruct(result);
);
return template;
return snakeKeysToCamelCase<Template>(template);
}

View File

@@ -1,8 +1,8 @@
import { rest } from "../../rest/rest.ts";
import { structures } from "../../structures/mod.ts";
import { DiscordTemplate, Template } from "../../types/templates/template.ts";
import { endpoints } from "../../util/constants.ts";
import { requireBotGuildPermissions } from "../../util/permissions.ts";
import { DiscordTemplate } from "../../types/templates/template.ts";
import { snakeKeysToCamelCase } from "../../util/utils.ts";
/**
* Syncs the template to the guild's current state.
@@ -11,10 +11,10 @@ import { DiscordTemplate } from "../../types/templates/template.ts";
export async function syncGuildTemplate(guildId: string, templateCode: string) {
await requireBotGuildPermissions(guildId, ["MANAGE_GUILD"]);
const template = (await rest.runMethod(
const template = await rest.runMethod<DiscordTemplate>(
"put",
`${endpoints.GUILD_TEMPLATES(guildId)}/${templateCode}`,
)) as DiscordTemplate;
);
return structures.createTemplateStruct(template);
return snakeKeysToCamelCase<Template>(template);
}

View File

@@ -3,7 +3,6 @@ import { createDiscordenoGuild } from "./guild.ts";
import { createDiscordenoMember } from "./member.ts";
import { createDiscordenoMessage } from "./message.ts";
import { createDiscordenoRole } from "./role.ts";
import { createTemplateStruct } from "./template.ts";
/** This is the placeholder where the structure creation functions are kept. */
export let structures = {
@@ -12,7 +11,6 @@ export let structures = {
createDiscordenoMember,
createDiscordenoMessage,
createDiscordenoRole,
createTemplateStruct,
};
// export type { Channel, Guild, Member, Message, Role, Template };

View File

@@ -1,53 +0,0 @@
import { eventHandlers } from "../bot.ts";
import { cache } from "../cache.ts";
import { DiscordTemplate, Template } from "../types/templates/template.ts";
import { createNewProp } from "../util/utils.ts";
import { DiscordenoGuild } from "./guild.ts";
const baseTemplate: Partial<DiscordenoTemplate> = {
get sourceGuild() {
// deno-lint-ignore getter-return
if (!this.sourceGuildId) return;
return cache.guilds.get(this.sourceGuildId);
},
};
export function createTemplateStruct(
data: DiscordTemplate,
) {
const {
usage_count: usageCount,
creator_id: creatorId,
created_at: createdAt,
updated_at: updatedAt,
source_guild_id: sourceGuildId,
serialized_source_guild: serializedSourceGuild,
is_dirty: isDirty,
...rest
} = data;
const restProps: Record<string, Partial<PropertyDescriptor>> = {};
for (const key of Object.keys(rest)) {
eventHandlers.debug?.(
"loop",
`Running for of loop in createTemplateStruct function.`,
);
// @ts-ignore index signature
restProps[key] = createNewProp(rest[key]);
}
return Object.create(baseTemplate, {
...restProps,
usageCount: createNewProp(sourceGuildId),
creatorId: createNewProp(creatorId),
createdAt: createNewProp(createdAt),
updatedAt: createNewProp(updatedAt),
sourceGuildId: createNewProp(sourceGuildId),
serializedSourceGuild: createNewProp(serializedSourceGuild),
isDirty: createNewProp(isDirty),
}) as DiscordenoTemplate;
}
export interface DiscordenoTemplate extends Template {
sourceGuild?: DiscordenoGuild;
}