replace implementation of getPublicKey to no longer require the sessionId. Furthermore the call now no longer calls getUserInfos on the login_server but just queries the database itself

This commit is contained in:
Ulf Gebhardt 2021-11-17 00:40:16 +01:00
parent b54558fa68
commit f09c3b4964
Signed by: ulfgebhardt
GPG Key ID: DA6B843E748679C9

View File

@ -33,6 +33,7 @@ import { calculateDecay, calculateDecayWithInterval } from '../../util/decay'
import { TransactionTypeId } from '../enum/TransactionTypeId'
import { TransactionType } from '../enum/TransactionType'
import { hasUserAmount, isHexPublicKey } from '../../util/validate'
import { LoginUserRepository } from '../../typeorm/repository/LoginUser'
/*
# Test
@ -451,15 +452,15 @@ async function addUserTransaction(
})
}
async function getPublicKey(email: string, sessionId: number): Promise<string | undefined> {
const result = await apiPost(CONFIG.LOGIN_API_URL + 'getUserInfos', {
session_id: sessionId,
email,
ask: ['user.pubkeyhex'],
})
if (result.success) {
return result.data.userData.pubkeyhex
async function getPublicKey(email: string): Promise<string | null> {
const loginUserRepository = getCustomRepository(LoginUserRepository)
const loginUser = await loginUserRepository.findOne({ email: email })
// User not found
if (!loginUser) {
return null
}
return loginUser.pubKey.toString('hex')
}
@Resolver()
@ -517,7 +518,7 @@ export class TransactionResolver {
// validate recipient user
// TODO: the detour over the public key is unnecessary
const recipiantPublicKey = await getPublicKey(email, context.sessionId)
const recipiantPublicKey = await getPublicKey(email)
if (!recipiantPublicKey) {
throw new Error('recipiant not known')
}