Compare commits

..

2 Commits

Author SHA1 Message Date
jamesgeorge007
263f8b3588 refactor: remove method chaining for consistency 2024-05-20 13:20:59 +05:30
nivedin
fc9f933905 fix: add previous value as optional 2024-05-17 00:00:13 +05:30
7 changed files with 22 additions and 36 deletions

View File

@@ -121,7 +121,6 @@ describe('AdminService', () => {
NOT: {
inviteeEmail: {
in: [dbAdminUsers[0].email],
mode: 'insensitive',
},
},
},
@@ -230,10 +229,7 @@ describe('AdminService', () => {
expect(mockPrisma.invitedUsers.deleteMany).toHaveBeenCalledWith({
where: {
inviteeEmail: {
in: [invitedUsers[0].inviteeEmail],
mode: 'insensitive',
},
inviteeEmail: { in: [invitedUsers[0].inviteeEmail] },
},
});
expect(result).toEqualRight(true);

View File

@@ -89,17 +89,12 @@ export class AdminService {
adminEmail: string,
inviteeEmail: string,
) {
if (inviteeEmail.toLowerCase() == adminEmail.toLowerCase()) {
return E.left(DUPLICATE_EMAIL);
}
if (inviteeEmail == adminEmail) return E.left(DUPLICATE_EMAIL);
if (!validateEmail(inviteeEmail)) return E.left(INVALID_EMAIL);
const alreadyInvitedUser = await this.prisma.invitedUsers.findFirst({
where: {
inviteeEmail: {
equals: inviteeEmail,
mode: 'insensitive',
},
inviteeEmail: inviteeEmail,
},
});
if (alreadyInvitedUser != null) return E.left(USER_ALREADY_INVITED);
@@ -164,7 +159,7 @@ export class AdminService {
try {
await this.prisma.invitedUsers.deleteMany({
where: {
inviteeEmail: { in: inviteeEmails, mode: 'insensitive' },
inviteeEmail: { in: inviteeEmails },
},
});
return E.right(true);
@@ -194,7 +189,6 @@ export class AdminService {
NOT: {
inviteeEmail: {
in: userEmailObjs.map((user) => user.email),
mode: 'insensitive',
},
},
},

View File

@@ -299,10 +299,7 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
where: userEmail
? {
User: {
email: {
equals: userEmail,
mode: 'insensitive',
},
email: userEmail,
},
}
: undefined,

View File

@@ -75,13 +75,12 @@ export class TeamInvitationService {
if (!isEmailValid) return E.left(INVALID_EMAIL);
try {
const teamInvite = await this.prisma.teamInvitation.findFirstOrThrow({
const teamInvite = await this.prisma.teamInvitation.findUniqueOrThrow({
where: {
inviteeEmail: {
equals: inviteeEmail,
mode: 'insensitive',
teamID_inviteeEmail: {
inviteeEmail: inviteeEmail,
teamID: teamID,
},
teamID,
},
});

View File

@@ -149,7 +149,7 @@ beforeEach(() => {
describe('UserService', () => {
describe('findUserByEmail', () => {
test('should successfully return a valid user given a valid email', async () => {
mockPrisma.user.findFirst.mockResolvedValueOnce(user);
mockPrisma.user.findUniqueOrThrow.mockResolvedValueOnce(user);
const result = await userService.findUserByEmail(
'dwight@dundermifflin.com',
@@ -158,7 +158,7 @@ describe('UserService', () => {
});
test('should return a null user given a invalid email', async () => {
mockPrisma.user.findFirst.mockResolvedValueOnce(null);
mockPrisma.user.findUniqueOrThrow.mockRejectedValueOnce('NotFoundError');
const result = await userService.findUserByEmail('jim@dundermifflin.com');
expect(result).resolves.toBeNone;

View File

@@ -62,16 +62,16 @@ export class UserService {
* @returns Option of found User
*/
async findUserByEmail(email: string): Promise<O.None | O.Some<AuthUser>> {
const user = await this.prisma.user.findFirst({
where: {
email: {
equals: email,
mode: 'insensitive',
try {
const user = await this.prisma.user.findUniqueOrThrow({
where: {
email: email,
},
},
});
if (!user) return O.none;
return O.some(user);
});
return O.some(user);
} catch (error) {
return O.none;
}
}
/**

View File

@@ -400,7 +400,7 @@ const HoppTestResultSchema = z
(x) => "secret" in x && !x.secret
).and(
z.object({
previousValue: z.string(),
previousValue: z.optional(z.string()),
})
)
),
@@ -415,7 +415,7 @@ const HoppTestResultSchema = z
(x) => "secret" in x && !x.secret
).and(
z.object({
previousValue: z.string(),
previousValue: z.optional(z.string()),
})
)
),