From 70665dae0321bf56cc5c5efce7ca7e16af4ba541 Mon Sep 17 00:00:00 2001 From: mirarifhasan Date: Tue, 20 Feb 2024 17:53:28 +0600 Subject: [PATCH] fix: feedback resolve --- .../src/admin/admin.resolver.ts | 6 +---- .../src/admin/admin.service.spec.ts | 22 +++++++++---------- .../src/admin/admin.service.ts | 9 ++++---- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/packages/hoppscotch-backend/src/admin/admin.resolver.ts b/packages/hoppscotch-backend/src/admin/admin.resolver.ts index daedc8789..bfc7af888 100644 --- a/packages/hoppscotch-backend/src/admin/admin.resolver.ts +++ b/packages/hoppscotch-backend/src/admin/admin.resolver.ts @@ -75,7 +75,6 @@ export class AdminResolver { }) @UseGuards(GqlAuthGuard, GqlAdminGuard) async revokeUserInvitationsByAdmin( - @GqlAdmin() adminUser: Admin, @Args({ name: 'inviteeEmails', description: 'Invitee Emails', @@ -83,10 +82,7 @@ export class AdminResolver { }) inviteeEmails: string[], ): Promise { - const invite = await this.adminService.revokeUserInvites( - inviteeEmails, - adminUser.uid, - ); + const invite = await this.adminService.revokeUserInvitations(inviteeEmails); if (E.isLeft(invite)) throwErr(invite.left); return invite.right; } diff --git a/packages/hoppscotch-backend/src/admin/admin.service.spec.ts b/packages/hoppscotch-backend/src/admin/admin.service.spec.ts index cc3d03aca..a7ebc0682 100644 --- a/packages/hoppscotch-backend/src/admin/admin.service.spec.ts +++ b/packages/hoppscotch-backend/src/admin/admin.service.spec.ts @@ -105,7 +105,7 @@ describe('AdminService', () => { test('should resolve right and apply pagination correctly', async () => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - mockPrisma.user.findMany.mockResolvedValue([]); + mockPrisma.user.findMany.mockResolvedValue([dbAdminUsers[0]]); // @ts-ignore mockPrisma.invitedUsers.findMany.mockResolvedValue(invitedUsers); @@ -120,7 +120,7 @@ describe('AdminService', () => { where: { NOT: { inviteeEmail: { - in: [], + in: [dbAdminUsers[0].email], }, }, }, @@ -131,7 +131,7 @@ describe('AdminService', () => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - mockPrisma.user.findMany.mockResolvedValue([]); + mockPrisma.user.findMany.mockResolvedValue([dbAdminUsers[0]]); // @ts-ignore mockPrisma.invitedUsers.findMany.mockResolvedValue(invitedUsers); @@ -206,16 +206,15 @@ describe('AdminService', () => { }); }); - describe('revokeUserInvites', () => { + describe('revokeUserInvitations', () => { test('should resolve left and return error if email not invited', async () => { mockPrisma.invitedUsers.deleteMany.mockRejectedValueOnce( 'RecordNotFound', ); - const result = await adminService.revokeUserInvites( - ['test@gmail.com'], - 'adminUid', - ); + const result = await adminService.revokeUserInvitations([ + 'test@gmail.com', + ]); expect(result).toEqualLeft(USER_INVITATION_DELETION_FAILED); }); @@ -224,10 +223,9 @@ describe('AdminService', () => { const adminUid = 'adminUid'; mockPrisma.invitedUsers.deleteMany.mockResolvedValueOnce({ count: 1 }); - const result = await adminService.revokeUserInvites( - [invitedUsers[0].inviteeEmail], - adminUid, - ); + const result = await adminService.revokeUserInvitations([ + invitedUsers[0].inviteeEmail, + ]); expect(mockPrisma.invitedUsers.deleteMany).toHaveBeenCalledWith({ where: { diff --git a/packages/hoppscotch-backend/src/admin/admin.service.ts b/packages/hoppscotch-backend/src/admin/admin.service.ts index 1ab0990f4..0bed66132 100644 --- a/packages/hoppscotch-backend/src/admin/admin.service.ts +++ b/packages/hoppscotch-backend/src/admin/admin.service.ts @@ -155,7 +155,7 @@ export class AdminService { * @param adminUid Admin Uid * @returns an Either of boolean or error string */ - async revokeUserInvites(inviteeEmails: string[], adminUid: string) { + async revokeUserInvitations(inviteeEmails: string[]) { try { await this.prisma.invitedUsers.deleteMany({ where: { @@ -414,6 +414,7 @@ export class AdminService { * Remove a user account by UID * @param userUid User UID * @returns an Either of boolean or error + * @deprecated use removeUserAccounts instead */ async removeUserAccount(userUid: string) { const user = await this.userService.findUserById(userUid); @@ -476,9 +477,7 @@ export class AdminService { const promiseResult = await Promise.allSettled(deletionPromises); // step 4: revoke all the invites sent to the deleted users - await this.prisma.invitedUsers.deleteMany({ - where: { inviteeEmail: { in: deletedUserEmails } }, - }); + await this.revokeUserInvitations(deletedUserEmails); // step 5: return the result promiseResult.forEach((result) => { @@ -494,6 +493,7 @@ export class AdminService { * Make a user an admin * @param userUid User UID * @returns an Either of boolean or error + * @deprecated use makeUsersAdmin instead */ async makeUserAdmin(userUID: string) { const admin = await this.userService.makeAdmin(userUID); @@ -516,6 +516,7 @@ export class AdminService { * Remove user as admin * @param userUid User UID * @returns an Either of boolean or error + * @deprecated use demoteUsersByAdmin instead */ async removeUserAsAdmin(userUID: string) { const adminUsers = await this.userService.fetchAdminUsers();