Adds eslint and linted & improved routing for interactions
This commit is contained in:
parent
83209f642c
commit
441715675c
35 changed files with 2091 additions and 463 deletions
|
|
@ -1,15 +1,16 @@
|
|||
import {Environment} from "../Environment";
|
||||
import {Container} from "./Container";
|
||||
import {DatabaseConnection} from "../Database/DatabaseConnection";
|
||||
import {getLogger, configure, Logger} from "log4js";
|
||||
import {configure, getLogger, Logger} from "log4js";
|
||||
import path from "node:path";
|
||||
import {GroupRepository} from "../Repositories/GroupRepository";
|
||||
import {PlaydateRepository} from "../Repositories/PlaydateRepository";
|
||||
import {GuildEmojiRoleManager} from "discord.js";
|
||||
import {GroupConfigurationRepository} from "../Repositories/GroupConfigurationRepository";
|
||||
import {DiscordClient} from "../Discord/DiscordClient";
|
||||
import {IconCache} from "../Icons/IconCache";
|
||||
import {EventHandler} from "../Events/EventHandler";
|
||||
import {InteractionRouter} from "../Discord/InteractionRouter";
|
||||
import Commands from "../Discord/Commands/Commands";
|
||||
|
||||
export enum ServiceHint {
|
||||
App,
|
||||
|
|
@ -21,19 +22,35 @@ export class Services {
|
|||
const env = new Environment();
|
||||
env.setup();
|
||||
container.set<Environment>(env);
|
||||
|
||||
const logger = this.setupLogger(hint);
|
||||
container.set<Logger>(logger, 'logger');
|
||||
|
||||
const database = new DatabaseConnection(env.database);
|
||||
container.set<DatabaseConnection>(database);
|
||||
|
||||
const discordClient = new DiscordClient(env.discord.clientId);
|
||||
const discordClient = new DiscordClient(
|
||||
env.discord.clientId,
|
||||
new InteractionRouter(new Commands(), logger)
|
||||
);
|
||||
container.set<DiscordClient>(discordClient);
|
||||
|
||||
const iconCache = new IconCache(discordClient);
|
||||
container.set<IconCache>(iconCache);
|
||||
|
||||
container.set<EventHandler>(new EventHandler());
|
||||
|
||||
// @ts-ignore
|
||||
this.setupRepositories(container);
|
||||
}
|
||||
|
||||
private static setupRepositories(container: Container) {
|
||||
const db = container.get<DatabaseConnection>(DatabaseConnection.name);
|
||||
container.set<GroupRepository>(new GroupRepository(db));
|
||||
container.set<PlaydateRepository>(new PlaydateRepository(db, container.get<GroupRepository>(GroupRepository.name)))
|
||||
container.set<GroupConfigurationRepository>(new GroupConfigurationRepository(db, container.get<GroupRepository>(GroupRepository.name)))
|
||||
}
|
||||
|
||||
private static setupLogger(hint: ServiceHint): Logger {
|
||||
|
||||
configure({
|
||||
appenders: {
|
||||
out: { type: "stdout" },
|
||||
|
|
@ -46,7 +63,7 @@ export class Services {
|
|||
deploy: { appenders: ["out", "deployLogFile"], level: "debug" },
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
let loggername = '';
|
||||
switch (hint) {
|
||||
case ServiceHint.App:
|
||||
|
|
@ -57,17 +74,6 @@ export class Services {
|
|||
break;
|
||||
|
||||
}
|
||||
const logger = getLogger(loggername);
|
||||
|
||||
container.set<Logger>(logger, 'logger');
|
||||
|
||||
this.setupRepositories(container);
|
||||
}
|
||||
|
||||
private static setupRepositories(container: Container) {
|
||||
const db = container.get<DatabaseConnection>(DatabaseConnection.name);
|
||||
container.set<GroupRepository>(new GroupRepository(db));
|
||||
container.set<PlaydateRepository>(new PlaydateRepository(db, container.get<GroupRepository>(GroupRepository.name)))
|
||||
container.set<GroupConfigurationRepository>(new GroupConfigurationRepository(db, container.get<GroupRepository>(GroupRepository.name)))
|
||||
return getLogger(loggername);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue