From a93b2c68e0a7d15c6f40ac1ea2f5abcea420a0e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20H=C3=BCttemann?= Date: Fri, 26 May 2023 15:20:40 +0200 Subject: [PATCH] Add memberships to db --- src/app.ts | 27 ++++++++++----------------- src/entity/Membership.ts | 10 ++++++++++ 2 files changed, 20 insertions(+), 17 deletions(-) create mode 100644 src/entity/Membership.ts diff --git a/src/app.ts b/src/app.ts index ba3b724..5d4e638 100644 --- a/src/app.ts +++ b/src/app.ts @@ -9,13 +9,14 @@ import { whoami } from './synapse' import 'reflect-metadata' import { DataSource } from 'typeorm' import { IdMapping } from './entity/IdMapping' +import { Membership } from './entity/Membership' log.info('rocketchat2matrix starts.') const AppDataSource = new DataSource({ type: 'sqlite', database: 'db.sqlite', - entities: [IdMapping], + entities: [IdMapping, Membership], synchronize: true, logging: false, }) @@ -63,25 +64,17 @@ function loadRcExport(entity: Entities): Promise { mapping.matrixId = matrixUser.user_id mapping.type = 0 - AppDataSource.manager.save(mapping) // Save new mapping + AppDataSource.manager.save(mapping) log.debug('Mapping added:', mapping) // Add user to room mapping (specific to users) - rcUser.__rooms.forEach((rcRoomId: string) => { - const roomIndex = storage.rooms.findIndex( - (e) => e.rcId === rcRoomId - ) - if (roomIndex >= 0) { - storage.rooms[roomIndex].members.push(rcUser._id) - log.debug(`Membership of ${rcUser.username} in ${rcRoomId} saved`) - } else { - storage.rooms.push({ - rcId: rcRoomId, - matrixId: '', - members: [], - }) - log.debug(`${rcUser.username} membership for ${rcRoomId} created`) - } + rcUser.__rooms.forEach(async (rcRoomId: string) => { + const membership = new Membership() + membership.rcRoomId = rcRoomId + membership.rcUserId = rcUser._id + + await AppDataSource.manager.save(membership) + log.debug(`${rcUser.username} membership for ${rcRoomId} created`) }) } diff --git a/src/entity/Membership.ts b/src/entity/Membership.ts new file mode 100644 index 0000000..0de0f06 --- /dev/null +++ b/src/entity/Membership.ts @@ -0,0 +1,10 @@ +import { Entity, PrimaryColumn } from 'typeorm' + +@Entity() +export class Membership { + @PrimaryColumn() + rcRoomId!: string + + @PrimaryColumn() + rcUserId!: string +}