Pull Request #4812
Add employee onboarding service
Creates employee records, account credentials and onboarding emails for newly hired employees across enterprise HR tenants.
Ready to merge
service/EmployeeOnboardingService.java+28 additions
Viewed1
@Service
2
public class EmployeeOnboardingService {
4
@Autowired private EmployeeRepository employeeRepository;
5
@Autowired private AccountRepository accountRepository;
6
@Autowired private EmailService emailService;
8
+ public OnboardingResult onboardEmployee(OnboardingRequest request) {
9
+ Employee employee = new Employee(
10
+ request.getName(),
11
+ request.getEmail(),
12
+ request.getDepartmentId()
13
+ );
15
+ employeeRepository.save(employee);
17
+ Account account = new Account(
18
+ employee.getId(),
19
+ request.getEmail(),
20
+ generateTemporaryPassword()
21
+ );
23
+ accountRepository.save(account);
25
+ try {
26
+ emailService.sendWelcomeEmail(
27
+ request.getEmail(),
28
+ account.getTemporaryPassword()
29
+ );
30
+ } catch (EmailException e) {
31
+ log.warn(
32
+ "Welcome email failed for employee {}: {}",
33
+ employee.getId(),
34
+ e.getMessage()
35
+ );
36
+ }
38
+ return OnboardingResult.success(employee.getId());
39
+ }
CL
chris_lead
Approved review
Nice. Good that you wrapped the email send in a try-catch, that thing has been flaky for months.