From 40e9198d91d0450f3cbeb22fefe0cf4dc8972968 Mon Sep 17 00:00:00 2001 From: Will Hunt <will@half-shot.uk> Date: Sun, 27 Jan 2019 16:51:16 +0000 Subject: [PATCH] Provisioner support for room store --- src/discordas.ts | 2 +- src/provisioner.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/discordas.ts b/src/discordas.ts index 6771e66..a328294 100644 --- a/src/discordas.ts +++ b/src/discordas.ts @@ -122,7 +122,6 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { userStore: config.database.userStorePath, // To avoid out of order message sending. }); - provisioner.SetBridge(bridge); roomhandler.setBridge(bridge); discordbot.setBridge(bridge); discordbot.setRoomHandler(roomhandler); @@ -134,6 +133,7 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { log.info("Initing store."); await discordstore.init(); log.info("Initing bot."); + provisioner.setStore(discordstore.roomStore); await discordbot.run(); log.info("Discordbot started successfully."); } catch (err) { diff --git a/src/provisioner.ts b/src/provisioner.ts index 68980f0..d2d066c 100644 --- a/src/provisioner.ts +++ b/src/provisioner.ts @@ -20,16 +20,17 @@ import { MatrixRoom, } from "matrix-appservice-bridge"; import * as Discord from "discord.js"; +import { DbRoomStore } from "./db/roomstore"; const PERMISSION_REQUEST_TIMEOUT = 300000; // 5 minutes export class Provisioner { - private bridge: Bridge; private pendingRequests: Map<string, (approved: boolean) => void> = new Map(); // [channelId]: resolver fn + private roomStore: DbRoomStore; - public SetBridge(bridge: Bridge): void { - this.bridge = bridge; + public setStore(roomStore: DbRoomStore) { + this.roomStore = roomStore; } public BridgeMatrixRoom(channel: Discord.TextChannel, roomId: string) { @@ -40,12 +41,11 @@ export class Provisioner { remote.set("plumbed", true); const local = new MatrixRoom(roomId); - this.bridge.getRoomStore().linkRooms(local, remote); - this.bridge.getRoomStore().setMatrixRoom(local); // Needs to be done after linking + this.roomStore.linkRooms(local, remote); } public UnbridgeRoom(remoteRoom: RemoteRoom) { - return this.bridge.getRoomStore().removeEntriesByRemoteRoomId(remoteRoom.getId()); + return this.roomStore.removeEntriesByRemoteRoomId(remoteRoom.getId()); } public async AskBridgePermission( -- GitLab