mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
fix(backend): delete / undelete email contact as well
This commit is contained in:
parent
e00fe51017
commit
bc20bfa8f6
@ -366,6 +366,19 @@ describe('AdminResolver', () => {
|
|||||||
expect(new Date(result.data.deleteUser)).toEqual(expect.any(Date))
|
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', () => {
|
describe('delete deleted user', () => {
|
||||||
it('throws an error', async () => {
|
it('throws an error', async () => {
|
||||||
jest.clearAllMocks()
|
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 }),
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@ -200,7 +200,7 @@ export class AdminResolver {
|
|||||||
@Arg('userId', () => Int) userId: number,
|
@Arg('userId', () => Int) userId: number,
|
||||||
@Ctx() context: Context,
|
@Ctx() context: Context,
|
||||||
): Promise<Date | null> {
|
): Promise<Date | null> {
|
||||||
const user = await dbUser.findOne({ id: userId })
|
const user = await dbUser.findOne({ where: { id: userId }, relations: ['emailContact'] })
|
||||||
// user exists ?
|
// user exists ?
|
||||||
if (!user) {
|
if (!user) {
|
||||||
logger.error(`Could not find user with userId: ${userId}`)
|
logger.error(`Could not find user with userId: ${userId}`)
|
||||||
@ -214,6 +214,7 @@ export class AdminResolver {
|
|||||||
}
|
}
|
||||||
// soft-delete user
|
// soft-delete user
|
||||||
await user.softRemove()
|
await user.softRemove()
|
||||||
|
await user.emailContact.softRemove()
|
||||||
const newUser = await dbUser.findOne({ id: userId }, { withDeleted: true })
|
const newUser = await dbUser.findOne({ id: userId }, { withDeleted: true })
|
||||||
return newUser ? newUser.deletedAt : null
|
return newUser ? newUser.deletedAt : null
|
||||||
}
|
}
|
||||||
@ -221,7 +222,10 @@ export class AdminResolver {
|
|||||||
@Authorized([RIGHTS.UNDELETE_USER])
|
@Authorized([RIGHTS.UNDELETE_USER])
|
||||||
@Mutation(() => Date, { nullable: true })
|
@Mutation(() => Date, { nullable: true })
|
||||||
async unDeleteUser(@Arg('userId', () => Int) userId: number): Promise<Date | null> {
|
async unDeleteUser(@Arg('userId', () => Int) userId: number): Promise<Date | null> {
|
||||||
const user = await dbUser.findOne({ id: userId }, { withDeleted: true })
|
const user = await dbUser.findOne(
|
||||||
|
{ id: userId },
|
||||||
|
{ withDeleted: true, relations: ['emailContact'] },
|
||||||
|
)
|
||||||
if (!user) {
|
if (!user) {
|
||||||
logger.error(`Could not find user with userId: ${userId}`)
|
logger.error(`Could not find user with userId: ${userId}`)
|
||||||
throw new 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')
|
throw new Error('User is not deleted')
|
||||||
}
|
}
|
||||||
await user.recover()
|
await user.recover()
|
||||||
|
await user.emailContact.recover()
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user