Skip to content

Commit 7babaa7

Browse files
committed
- Solved Problem in AuthenticationController Sign Up
1 parent 4c01610 commit 7babaa7

File tree

1 file changed

+43
-23
lines changed

1 file changed

+43
-23
lines changed

src/main/java/com/hrms/backend/controllers/AuthenticationController.java

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springframework.web.bind.annotation.RequestMapping;
3434
import org.springframework.web.bind.annotation.RestController;
3535

36+
import java.time.LocalDateTime;
3637
import java.util.Collections;
3738
import java.util.Optional;
3839

@@ -144,46 +145,65 @@ public ResponseEntity<JwtResponse> googleSignUp(@Valid @RequestBody GoogleSignUp
144145
}
145146

146147
GoogleIdToken.Payload payload = idToken.getPayload();
147-
String email = payload.getEmail();
148+
String email = (String) payload.get("email");
148149

150+
// Check if user already exists
149151
Optional<User> existingUser = userRepository.findByEmail(email);
150-
151152
if (existingUser.isPresent()) {
152153
throw new BadApiRequestException("User already registered with this email");
153154
}
154155

155-
// Create new user
156+
// Create new User object
156157
User newUser = User.builder()
157158
.email(email)
158159
.name((String) payload.get("name"))
159160
.imageUrl((String) payload.get("picture"))
160-
.role(Role.valueOf(request.getRole())) // Ensure enum matches (ROLE_USER or ROLE_HR)
161+
.role(Role.valueOf(request.getRole())) // Either ROLE_HR or ROLE_USER
161162
.isGoogleUser(true)
163+
.createdAt(LocalDateTime.now().toString())
162164
.build();
163165

164-
if(newUser.getRole().equals(Role.ROLE_HR)){
165-
String companyCode = CodeGenerator.generateBase64Code();;
166-
while(companyRepository.findByCompanyCode(companyCode).isPresent()){
166+
if (newUser.getRole().equals(Role.ROLE_HR)) {
167+
// Generate unique company code
168+
String companyCode = CodeGenerator.generateBase64Code();
169+
while (companyRepository.findByCompanyCode(companyCode).isPresent()) {
167170
companyCode = CodeGenerator.generateBase64Code();
168171
}
169172
newUser.setCompanyCode(companyCode);
170-
}
171-
172-
173-
User savedUser = userRepository.save(newUser);
174-
175-
Company company = Company.builder().hr(savedUser.getId()).companyCode(savedUser.getCompanyCode()).build();
176-
companyRepository.save(company);
177-
178-
String jwt = jwtHelper.generateToken(savedUser, savedUser.getRole().name());
179-
UserResponseDto userResponseDto = modelMapper.map(savedUser, UserResponseDto.class);
180173

181-
JwtResponse jwtResponse = JwtResponse.builder()
182-
.user(userResponseDto)
183-
.token(jwt)
184-
.build();
185-
186-
return ResponseEntity.ok(jwtResponse);
174+
// Save HR user
175+
User savedUser = userRepository.save(newUser);
176+
177+
// Create and save company
178+
Company company = Company.builder()
179+
.companyCode(companyCode)
180+
.hr(savedUser.getId())
181+
.createdDate(LocalDateTime.now().toString())
182+
.build();
183+
companyRepository.save(company);
184+
185+
// Generate JWT
186+
String jwt = jwtHelper.generateToken(savedUser, savedUser.getRole().name());
187+
UserResponseDto userResponseDto = modelMapper.map(savedUser, UserResponseDto.class);
188+
JwtResponse jwtResponse = JwtResponse.builder()
189+
.user(userResponseDto)
190+
.token(jwt)
191+
.build();
192+
return ResponseEntity.ok(jwtResponse);
193+
194+
} else {
195+
// ROLE_USER – no company code provided
196+
User savedUser = userRepository.save(newUser);
197+
198+
// Generate JWT
199+
String jwt = jwtHelper.generateToken(savedUser, savedUser.getRole().name());
200+
UserResponseDto userResponseDto = modelMapper.map(savedUser, UserResponseDto.class);
201+
JwtResponse jwtResponse = JwtResponse.builder()
202+
.user(userResponseDto)
203+
.token(jwt)
204+
.build();
205+
return ResponseEntity.ok(jwtResponse);
206+
}
187207
}
188208

189209
}

0 commit comments

Comments
 (0)