Move handlers and clean up
This commit is contained in:
parent
ae3353c6cb
commit
4692c7edea
@ -4,10 +4,10 @@ import lineByLine from 'n-readlines'
|
|||||||
import 'reflect-metadata'
|
import 'reflect-metadata'
|
||||||
import { IdMapping } from './entity/IdMapping'
|
import { IdMapping } from './entity/IdMapping'
|
||||||
import { Membership } from './entity/Membership'
|
import { Membership } from './entity/Membership'
|
||||||
|
import { RcUser, createUser } from './handlers/users'
|
||||||
import log from './helpers/logger'
|
import log from './helpers/logger'
|
||||||
|
import { getMapping, initStorage, save } from './helpers/storage'
|
||||||
import { whoami } from './helpers/synapse'
|
import { whoami } from './helpers/synapse'
|
||||||
import { RcUser, createUser } from './users'
|
|
||||||
import { getMapping, save, setMapping } from './helpers/storage'
|
|
||||||
|
|
||||||
log.info('rocketchat2matrix starts.')
|
log.info('rocketchat2matrix starts.')
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ async function loadRcExport(entity: Entities) {
|
|||||||
async function main() {
|
async function main() {
|
||||||
try {
|
try {
|
||||||
await whoami()
|
await whoami()
|
||||||
await AppDataSource.initialize()
|
await initStorage()
|
||||||
await loadRcExport(Entities.Users)
|
await loadRcExport(Entities.Users)
|
||||||
log.info('Done.')
|
log.info('Done.')
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import log from './helpers/logger'
|
import log from '../helpers/logger'
|
||||||
import { getAccessToken } from './helpers/storage'
|
import { axios, getUserSessionOptions } from '../helpers/synapse'
|
||||||
import { axios, getUserSessionOptions } from './helpers/synapse'
|
|
||||||
import { RcUser } from './users'
|
import { RcUser } from './users'
|
||||||
|
|
||||||
export const enum RcRoomTypes {
|
export const enum RcRoomTypes {
|
||||||
@ -36,7 +35,7 @@ export type MatrixRoom = {
|
|||||||
topic?: string
|
topic?: string
|
||||||
is_direct?: boolean
|
is_direct?: boolean
|
||||||
preset?: MatrixRoomPresets
|
preset?: MatrixRoomPresets
|
||||||
_creatorId?: string
|
_creatorId: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export function mapRoom(rcRoom: RcRoom): MatrixRoom {
|
export function mapRoom(rcRoom: RcRoom): MatrixRoom {
|
||||||
@ -44,6 +43,7 @@ export function mapRoom(rcRoom: RcRoom): MatrixRoom {
|
|||||||
creation_content: {
|
creation_content: {
|
||||||
'm.federate': false,
|
'm.federate': false,
|
||||||
},
|
},
|
||||||
|
_creatorId: '',
|
||||||
}
|
}
|
||||||
rcRoom.name && (room.name = rcRoom.name)
|
rcRoom.name && (room.name = rcRoom.name)
|
||||||
rcRoom.name && (room.room_alias_name = rcRoom.name)
|
rcRoom.name && (room.room_alias_name = rcRoom.name)
|
||||||
@ -53,17 +53,17 @@ export function mapRoom(rcRoom: RcRoom): MatrixRoom {
|
|||||||
case 'd':
|
case 'd':
|
||||||
room.is_direct = true
|
room.is_direct = true
|
||||||
room.preset = MatrixRoomPresets.trusted
|
room.preset = MatrixRoomPresets.trusted
|
||||||
room._creatorId = rcRoom.uids?.[0]
|
room._creatorId = rcRoom.uids?.[0] || ''
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'c':
|
case 'c':
|
||||||
room.preset = MatrixRoomPresets.public
|
room.preset = MatrixRoomPresets.public
|
||||||
room._creatorId = rcRoom.u?._id
|
room._creatorId = rcRoom.u?._id || ''
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'p':
|
case 'p':
|
||||||
room.preset = MatrixRoomPresets.private
|
room.preset = MatrixRoomPresets.private
|
||||||
room._creatorId = rcRoom.u?._id
|
room._creatorId = rcRoom.u?._id || ''
|
||||||
break
|
break
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -71,6 +71,11 @@ export function mapRoom(rcRoom: RcRoom): MatrixRoom {
|
|||||||
log.error(message)
|
log.error(message)
|
||||||
throw new Error(message)
|
throw new Error(message)
|
||||||
}
|
}
|
||||||
|
if (!room._creatorId) {
|
||||||
|
const message = `Creator ID could not be determined for room of type ${rcRoom.t}`
|
||||||
|
log.error(message)
|
||||||
|
throw new Error(message)
|
||||||
|
}
|
||||||
return room
|
return room
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +85,7 @@ export async function createRoom(rcRoom: RcRoom): Promise<MatrixRoom> {
|
|||||||
await axios.post(
|
await axios.post(
|
||||||
'/_matrix/client/v3/createRoom',
|
'/_matrix/client/v3/createRoom',
|
||||||
room,
|
room,
|
||||||
await getUserSessionOptions(room._creatorId!)
|
await getUserSessionOptions(room._creatorId)
|
||||||
)
|
)
|
||||||
).data.room_id
|
).data.room_id
|
||||||
|
|
||||||
@ -1,6 +1,12 @@
|
|||||||
process.env.REGISTRATION_SHARED_SECRET = 'ThisIsSoSecretWow'
|
process.env.REGISTRATION_SHARED_SECRET = 'ThisIsSoSecretWow'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { MatrixUser, RcUser, createUser, generateHmac, mapUser } from './users'
|
import {
|
||||||
|
MatrixUser,
|
||||||
|
RcUser,
|
||||||
|
createUser,
|
||||||
|
generateHmac,
|
||||||
|
mapUser,
|
||||||
|
} from '../handlers/users'
|
||||||
|
|
||||||
jest.mock('axios')
|
jest.mock('axios')
|
||||||
const mockedAxios = axios as jest.Mocked<typeof axios>
|
const mockedAxios = axios as jest.Mocked<typeof axios>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import log from './helpers/logger'
|
|
||||||
import { axios } from './helpers/synapse'
|
|
||||||
import { createHmac } from 'node:crypto'
|
import { createHmac } from 'node:crypto'
|
||||||
|
import log from '../helpers/logger'
|
||||||
|
import { axios } from '../helpers/synapse'
|
||||||
|
|
||||||
export type RcUser = {
|
export type RcUser = {
|
||||||
_id: string
|
_id: string
|
||||||
@ -10,6 +10,10 @@ const AppDataSource = new DataSource({
|
|||||||
logging: false,
|
logging: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export async function initStorage() {
|
||||||
|
await AppDataSource.initialize()
|
||||||
|
}
|
||||||
|
|
||||||
export function getMapping(id: string, type: number) {
|
export function getMapping(id: string, type: number) {
|
||||||
return AppDataSource.manager.findOneBy(IdMapping, {
|
return AppDataSource.manager.findOneBy(IdMapping, {
|
||||||
rcId: id,
|
rcId: id,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { access_token } from '../config/synapse_access_token.json'
|
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
import { access_token } from '../config/synapse_access_token.json'
|
||||||
import log from './logger'
|
import log from './logger'
|
||||||
import { getAccessToken } from './storage'
|
import { getAccessToken } from './storage'
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user