add logging to start looking into existing users

This commit is contained in:
James Jennett-Wheeler 2023-10-26 17:06:08 +01:00
parent 176fa455c2
commit 857360c4d2
2 changed files with 18 additions and 8 deletions

View File

@ -75,6 +75,12 @@ async function registerUser(user: MatrixUser): Promise<AccessToken> {
return (await axios.post('/_synapse/admin/v1/register', user)).data return (await axios.post('/_synapse/admin/v1/register', user)).data
} }
async function userAlreadyExists(user: MatrixUser): Promise<boolean> {
const user_data = (await axios.get('/_synapse/admin/v2/users/' + user.username)).data
log.debug(`Mapping exists:`, user_data)
return true
}
async function parseUserMemberships(rcUser: RcUser): Promise<void> { async function parseUserMemberships(rcUser: RcUser): Promise<void> {
await Promise.all( await Promise.all(
rcUser.__rooms.map(async (rcRoomId: string) => { rcUser.__rooms.map(async (rcRoomId: string) => {
@ -117,13 +123,17 @@ export async function createMapping(
export async function createUser(rcUser: RcUser): Promise<MatrixUser> { export async function createUser(rcUser: RcUser): Promise<MatrixUser> {
const user = mapUser(rcUser) const user = mapUser(rcUser)
const nonce = await getUserRegistrationNonce() if (await userAlreadyExists(user)) {
const mac = generateHmac({ ...user, nonce }) log.info(`User ${rcUser.username} exists:`, user)
const accessToken = await registerUser({ ...user, nonce, mac }) } else {
user.user_id = accessToken.user_id const nonce = await getUserRegistrationNonce()
user.access_token = accessToken.access_token const mac = generateHmac({ ...user, nonce })
log.info(`User ${rcUser.username} created:`, user) const accessToken = await registerUser({ ...user, nonce, mac })
user.user_id = accessToken.user_id
user.access_token = accessToken.access_token
log.info(`User ${rcUser.username} created:`, user)
}
throw "End here"
await parseUserMemberships(rcUser) await parseUserMemberships(rcUser)
return user return user

View File

@ -3,7 +3,7 @@ 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'
axios.defaults.baseURL = 'http://localhost:8008' axios.defaults.baseURL = 'https://m-rc.jennett-wheeler.co.uk'
axios.defaults.headers.common['Authorization'] = `Bearer ${access_token}` axios.defaults.headers.common['Authorization'] = `Bearer ${access_token}`
axios.defaults.headers.post['Content-Type'] = 'application/json' axios.defaults.headers.post['Content-Type'] = 'application/json'