rocketchat2matrix/src/helpers/synapse.ts
2023-06-07 18:49:14 +02:00

32 lines
1017 B
TypeScript

import axios from 'axios'
import { access_token } from '../config/synapse_access_token.json'
import log from './logger'
import { getAccessToken } from './storage'
axios.defaults.baseURL = 'http://localhost:8008'
axios.defaults.headers.common['Authorization'] = `Bearer ${access_token}`
axios.defaults.headers.post['Content-Type'] = 'application/json'
export { default as axios } from 'axios'
export const whoami = () =>
new Promise<void>((resolve, reject) => {
axios
.get('/_matrix/client/v3/account/whoami')
.then((response) => {
log.info('Logged into synapse as', response.data)
resolve()
})
.catch((reason) => {
log.error(`Login to synapse failed: ${reason}`)
reject()
})
})
export async function getUserSessionOptions(id: string) {
const accessToken = await getAccessToken(id)
if (!accessToken) {
throw new Error(`Could not retrieve access token for ID ${id}`)
}
return { headers: { Authorization: `Bearer ${accessToken}` } }
}