zappyzep/backend/src/plugins/Automod/actions/log.ts
2021-08-18 20:01:06 +03:00

25 lines
862 B
TypeScript

import * as t from "io-ts";
import { LogType } from "../../../data/LogType";
import { isTruthy, stripObjectToScalars, unique } from "../../../utils";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { automodAction } from "../helpers";
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
export const LogAction = automodAction({
configType: t.boolean,
defaultConfig: true,
async apply({ pluginData, contexts, ruleName, matchResult }) {
const users = unique(contexts.map(c => c.user)).filter(isTruthy);
const user = users[0];
const actionsTaken = Object.keys(pluginData.config.get().rules[ruleName].actions).join(", ");
pluginData.getPlugin(LogsPlugin).logAutomodAction({
rule: ruleName,
user,
users,
actionsTaken,
matchSummary: matchResult.summary ?? "",
});
},
});