transactions

This commit is contained in:
Ulf Gebhardt 2021-11-23 12:32:27 +01:00
parent 1fc0fa3bc1
commit e62f3fd6cb
Signed by: ulfgebhardt
GPG Key ID: DA6B843E748679C9

View File

@ -479,23 +479,39 @@ export class UserResolver {
loginUser.privKey = encryptedPrivkey loginUser.privKey = encryptedPrivkey
dbUser.pubkey = keyPair[0] dbUser.pubkey = keyPair[0]
// Save loginUser
// TODO transaction
await loginUser.save()
// Save user
// TODO transaction
await dbUser.save()
// Sign into Klicktipp // Sign into Klicktipp
// TODO do we always signUp the user? How to handle things with old users? // TODO do we always signUp the user? How to handle things with old users?
if (optInCode.emailOptInTypeId === EMAIL_OPT_IN_REGISTER) { if (optInCode.emailOptInTypeId === EMAIL_OPT_IN_REGISTER) {
await signIn(loginUser.email, loginUser.language, loginUser.firstName, loginUser.lastName) await signIn(loginUser.email, loginUser.language, loginUser.firstName, loginUser.lastName)
} }
// Delete Code const queryRunner = getConnection().createQueryRunner()
// TODO transaction await queryRunner.connect()
await optInCode.remove() await queryRunner.startTransaction('READ UNCOMMITTED')
try {
// Save loginUser
await queryRunner.manager.save(loginUser).catch((error) => {
throw new Error('error saving loginUser: ' + error)
})
// Save user
await queryRunner.manager.save(dbUser).catch((error) => {
throw new Error('error saving user: ' + error)
})
// Delete Code
await queryRunner.manager.remove(optInCode).catch((error) => {
throw new Error('error deleting code: ' + error)
})
await queryRunner.commitTransaction()
} catch (e) {
await queryRunner.rollbackTransaction()
throw e
} finally {
await queryRunner.release()
}
return true return true
} }