3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-14 13:55:03 +00:00

Port Cases plugin

This commit is contained in:
Dragory 2020-07-22 22:08:49 +03:00
parent a848e00fdd
commit 479cb56928
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
7 changed files with 349 additions and 0 deletions

View file

@ -0,0 +1,48 @@
import { zeppelinPlugin } from "../ZeppelinPluginBlueprint";
import { CaseArgs, CaseNoteArgs, CasesPluginType, ConfigSchema } from "./types";
import { resolveUser } from "../../utils";
import { createCase } from "./functions/createCase";
import { GuildLogs } from "../../data/GuildLogs";
import { GuildArchives } from "../../data/GuildArchives";
import { GuildCases } from "../../data/GuildCases";
import { createCaseNote } from "./functions/createCaseNote";
import { Case } from "../../data/entities/Case";
import { postCaseToCaseLogChannel } from "./functions/postToCaseLogChannel";
const defaultOptions = {
config: {
log_automatic_actions: true,
case_log_channel: null,
},
};
export const CasesPlugin = zeppelinPlugin<CasesPluginType>()("cases", {
configSchema: ConfigSchema,
defaultOptions,
public: {
createCase(pluginData) {
return async (args: CaseArgs) => {
return createCase(pluginData, args);
};
},
createCaseNote(pluginData) {
return async (args: CaseNoteArgs) => {
return createCaseNote(pluginData, args);
};
},
postCaseToCaseLogChannel(pluginData) {
return async (caseOrCaseId: Case | number) => {
return postCaseToCaseLogChannel(pluginData, caseOrCaseId);
};
},
},
onLoad(pluginData) {
pluginData.state.logs = new GuildLogs(pluginData.guild.id);
pluginData.state.archives = GuildArchives.getGuildInstance(pluginData.guild.id);
pluginData.state.cases = GuildCases.getGuildInstance(pluginData.guild.id);
},
});