Add memberships to db
This commit is contained in:
parent
c9537ab909
commit
a93b2c68e0
27
src/app.ts
27
src/app.ts
@ -9,13 +9,14 @@ import { whoami } from './synapse'
|
|||||||
import 'reflect-metadata'
|
import 'reflect-metadata'
|
||||||
import { DataSource } from 'typeorm'
|
import { DataSource } from 'typeorm'
|
||||||
import { IdMapping } from './entity/IdMapping'
|
import { IdMapping } from './entity/IdMapping'
|
||||||
|
import { Membership } from './entity/Membership'
|
||||||
|
|
||||||
log.info('rocketchat2matrix starts.')
|
log.info('rocketchat2matrix starts.')
|
||||||
|
|
||||||
const AppDataSource = new DataSource({
|
const AppDataSource = new DataSource({
|
||||||
type: 'sqlite',
|
type: 'sqlite',
|
||||||
database: 'db.sqlite',
|
database: 'db.sqlite',
|
||||||
entities: [IdMapping],
|
entities: [IdMapping, Membership],
|
||||||
synchronize: true,
|
synchronize: true,
|
||||||
logging: false,
|
logging: false,
|
||||||
})
|
})
|
||||||
@ -63,25 +64,17 @@ function loadRcExport(entity: Entities): Promise<void> {
|
|||||||
mapping.matrixId = matrixUser.user_id
|
mapping.matrixId = matrixUser.user_id
|
||||||
mapping.type = 0
|
mapping.type = 0
|
||||||
|
|
||||||
AppDataSource.manager.save(mapping) // Save new mapping
|
AppDataSource.manager.save(mapping)
|
||||||
log.debug('Mapping added:', mapping)
|
log.debug('Mapping added:', mapping)
|
||||||
|
|
||||||
// Add user to room mapping (specific to users)
|
// Add user to room mapping (specific to users)
|
||||||
rcUser.__rooms.forEach((rcRoomId: string) => {
|
rcUser.__rooms.forEach(async (rcRoomId: string) => {
|
||||||
const roomIndex = storage.rooms.findIndex(
|
const membership = new Membership()
|
||||||
(e) => e.rcId === rcRoomId
|
membership.rcRoomId = rcRoomId
|
||||||
)
|
membership.rcUserId = rcUser._id
|
||||||
if (roomIndex >= 0) {
|
|
||||||
storage.rooms[roomIndex].members.push(rcUser._id)
|
await AppDataSource.manager.save(membership)
|
||||||
log.debug(`Membership of ${rcUser.username} in ${rcRoomId} saved`)
|
log.debug(`${rcUser.username} membership for ${rcRoomId} created`)
|
||||||
} else {
|
|
||||||
storage.rooms.push({
|
|
||||||
rcId: rcRoomId,
|
|
||||||
matrixId: '',
|
|
||||||
members: [],
|
|
||||||
})
|
|
||||||
log.debug(`${rcUser.username} membership for ${rcRoomId} created`)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
src/entity/Membership.ts
Normal file
10
src/entity/Membership.ts
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import { Entity, PrimaryColumn } from 'typeorm'
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
export class Membership {
|
||||||
|
@PrimaryColumn()
|
||||||
|
rcRoomId!: string
|
||||||
|
|
||||||
|
@PrimaryColumn()
|
||||||
|
rcUserId!: string
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user