From bc20bfa8f6e38e40fbcc67c692e926ad28fae1f0 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 30 Nov 2022 12:46:46 +0100 Subject: [PATCH 1/3] fix(backend): delete / undelete email contact as well --- .../graphql/resolver/AdminResolver.test.ts | 22 +++++++++++++++++++ backend/src/graphql/resolver/AdminResolver.ts | 9 ++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/backend/src/graphql/resolver/AdminResolver.test.ts b/backend/src/graphql/resolver/AdminResolver.test.ts index 503bab472..757f552f8 100644 --- a/backend/src/graphql/resolver/AdminResolver.test.ts +++ b/backend/src/graphql/resolver/AdminResolver.test.ts @@ -366,6 +366,19 @@ describe('AdminResolver', () => { expect(new Date(result.data.deleteUser)).toEqual(expect.any(Date)) }) + it('has deleted at set in users and user contacts', async () => { + await expect( + User.findOneOrFail({ + where: { id: user.id }, + withDeleted: true, + relations: ['emailContact'], + }), + ).resolves.toMatchObject({ + deletedAt: expect.any(Date), + emailContact: expect.objectContaining({ deletedAt: expect.any(Date) }), + }) + }) + describe('delete deleted user', () => { it('throws an error', async () => { jest.clearAllMocks() @@ -489,6 +502,15 @@ describe('AdminResolver', () => { }), ) }) + + it('has deleted at set to null in users and user contacts', async () => { + await expect( + User.findOneOrFail({ where: { id: user.id }, relations: ['emailContact'] }), + ).resolves.toMatchObject({ + deletedAt: null, + emailContact: expect.objectContaining({ deletedAt: null }), + }) + }) }) }) }) diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index 80c69a864..9ff4824e5 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -200,7 +200,7 @@ export class AdminResolver { @Arg('userId', () => Int) userId: number, @Ctx() context: Context, ): Promise { - const user = await dbUser.findOne({ id: userId }) + const user = await dbUser.findOne({ where: { id: userId }, relations: ['emailContact'] }) // user exists ? if (!user) { logger.error(`Could not find user with userId: ${userId}`) @@ -214,6 +214,7 @@ export class AdminResolver { } // soft-delete user await user.softRemove() + await user.emailContact.softRemove() const newUser = await dbUser.findOne({ id: userId }, { withDeleted: true }) return newUser ? newUser.deletedAt : null } @@ -221,7 +222,10 @@ export class AdminResolver { @Authorized([RIGHTS.UNDELETE_USER]) @Mutation(() => Date, { nullable: true }) async unDeleteUser(@Arg('userId', () => Int) userId: number): Promise { - const user = await dbUser.findOne({ id: userId }, { withDeleted: true }) + const user = await dbUser.findOne( + { id: userId }, + { withDeleted: true, relations: ['emailContact'] }, + ) if (!user) { logger.error(`Could not find user with userId: ${userId}`) throw new Error(`Could not find user with userId: ${userId}`) @@ -231,6 +235,7 @@ export class AdminResolver { throw new Error('User is not deleted') } await user.recover() + await user.emailContact.recover() return null } From bd3f05d6c8c57b1dc010507f115f7e47f72ab986 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 8 Dec 2022 19:11:01 +0100 Subject: [PATCH 2/3] Update backend/src/graphql/resolver/AdminResolver.test.ts Co-authored-by: Ulf Gebhardt --- backend/src/graphql/resolver/AdminResolver.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/AdminResolver.test.ts b/backend/src/graphql/resolver/AdminResolver.test.ts index 757f552f8..8554f990a 100644 --- a/backend/src/graphql/resolver/AdminResolver.test.ts +++ b/backend/src/graphql/resolver/AdminResolver.test.ts @@ -366,7 +366,7 @@ describe('AdminResolver', () => { expect(new Date(result.data.deleteUser)).toEqual(expect.any(Date)) }) - it('has deleted at set in users and user contacts', async () => { + it('has deleted_at set in users and user contacts', async () => { await expect( User.findOneOrFail({ where: { id: user.id }, From cbb688112f5f08ed7bb9fb38688dd2773d4b5d41 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 8 Dec 2022 19:11:09 +0100 Subject: [PATCH 3/3] Update backend/src/graphql/resolver/AdminResolver.test.ts Co-authored-by: Ulf Gebhardt --- backend/src/graphql/resolver/AdminResolver.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/graphql/resolver/AdminResolver.test.ts b/backend/src/graphql/resolver/AdminResolver.test.ts index 8554f990a..4a55bd0ad 100644 --- a/backend/src/graphql/resolver/AdminResolver.test.ts +++ b/backend/src/graphql/resolver/AdminResolver.test.ts @@ -503,7 +503,7 @@ describe('AdminResolver', () => { ) }) - it('has deleted at set to null in users and user contacts', async () => { + it('has deleted_at set to null in users and user contacts', async () => { await expect( User.findOneOrFail({ where: { id: user.id }, relations: ['emailContact'] }), ).resolves.toMatchObject({