Skip to content

Commit 65dd612

Browse files
authored
Merge pull request #1093 from credebl/refactor/checkUserExist-API-response
refactor: add email verification status and user registration status in response
2 parents 5f2baf8 + 2ed586f commit 65dd612

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

apps/api-gateway/src/user/user.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ export class UserController {
253253
* @returns User's email exist status
254254
*/
255255
@Get('/:email')
256-
@ApiOperation({ summary: 'Check if user exist', description: 'check user existence' })
256+
@ApiOperation({ summary: 'Check user registration and email verification status', description: 'Check user registration and email verification status' })
257257
async checkUserExist(@Param() emailParam: EmailValidator, @Res() res: Response): Promise<Response> {
258258
const userDetails = await this.userService.checkUserExist(emailParam.email);
259259

apps/user/interfaces/user.interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ export interface ICheckUserDetails {
105105
isEmailVerified?: boolean;
106106
isFidoVerified?: boolean;
107107
isRegistrationCompleted?: boolean;
108+
userId?: number;
109+
message?:string;
108110
}
109111

110112
export interface IOrgUsers {

apps/user/src/user.service.ts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -990,24 +990,34 @@ export class UserService {
990990
async checkUserExist(email: string): Promise<ICheckUserDetails> {
991991
try {
992992
const userDetails = await this.userRepository.checkUniqueUserExist(email.toLowerCase());
993+
let userVerificationDetails;
994+
if (userDetails) {
995+
userVerificationDetails = {
996+
isEmailVerified: userDetails.isEmailVerified,
997+
isFidoVerified: userDetails.isFidoVerified,
998+
isRegistrationCompleted: null !== userDetails.keycloakUserId && undefined !== userDetails.keycloakUserId,
999+
message:'',
1000+
userId: userDetails.id
1001+
};
1002+
1003+
}
9931004
if (userDetails && !userDetails.isEmailVerified) {
994-
throw new ConflictException(ResponseMessages.user.error.verificationAlreadySent);
1005+
userVerificationDetails.message = ResponseMessages.user.error.verificationAlreadySent;
1006+
return userVerificationDetails;
9951007
} else if (userDetails && userDetails.keycloakUserId) {
996-
throw new ConflictException(ResponseMessages.user.error.exists);
1008+
userVerificationDetails.message = ResponseMessages.user.error.exists;
1009+
return userVerificationDetails;
9971010
} else if (userDetails && !userDetails.keycloakUserId && userDetails.supabaseUserId) {
998-
throw new ConflictException(ResponseMessages.user.error.exists);
1011+
userVerificationDetails.message = ResponseMessages.user.error.exists;
1012+
return userVerificationDetails;
9991013
} else if (null === userDetails) {
1000-
return {
1014+
return {
10011015
isRegistrationCompleted: false,
1002-
isEmailVerified: false
1016+
isEmailVerified: false,
1017+
userId:null,
1018+
message: ResponseMessages.user.error.notFound
10031019
};
10041020
} else {
1005-
const userVerificationDetails = {
1006-
isEmailVerified: userDetails.isEmailVerified,
1007-
isFidoVerified: userDetails.isFidoVerified,
1008-
isRegistrationCompleted: null !== userDetails.keycloakUserId && undefined !== userDetails.keycloakUserId
1009-
1010-
};
10111021
return userVerificationDetails;
10121022
}
10131023
} catch (error) {

0 commit comments

Comments
 (0)