diff --git a/packages/api/src/resolvers/user/index.ts b/packages/api/src/resolvers/user/index.ts index cf57a201a..7a41f0878 100644 --- a/packages/api/src/resolvers/user/index.ts +++ b/packages/api/src/resolvers/user/index.ts @@ -39,6 +39,9 @@ import * as jwt from 'jsonwebtoken' import { createUser } from '../../services/create_user' import { comparePassword, hashPassword } from '../../utils/auth' import { deletePagesByParam } from '../../elastic/pages' +import { setClaims } from '../../entity/utils' +import { User as UserEntity } from '../../entity/user' +import { AppDataSource } from '../../server' export const updateUserResolver = authorized< UpdateUserSuccess, @@ -388,9 +391,12 @@ export const deleteAccountResolver = authorized< }, }) - const deletedUser = await models.user.delete(userID) - if ('error' in deletedUser) { - log.error('Error deleting user account', deletedUser.error) + const result = await AppDataSource.transaction(async (t) => { + await setClaims(t, claims.uid) + return t.getRepository(UserEntity).delete(userID) + }) + if (!result.affected) { + log.error('Error deleting user account') return { errorCodes: [DeleteAccountErrorCode.UserNotFound], diff --git a/yarn.lock b/yarn.lock index 9412790f6..96f5c31b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10950,6 +10950,11 @@ color-support@^1.1.2: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +color2k@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/color2k/-/color2k-2.0.0.tgz#86992c82e248c29f524023ed0822bc152c4fa670" + integrity sha512-DWX9eXOC4fbJNiuvdH4QSHvvfLWyFo9TuFp7V9OzdsbPAdrWAuYc8qvFP2bIQ/LKh4LrAVnJ6vhiQYPvAHdtTg== + color@3.0.x: version "3.0.0" resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"