🖥️

Real incidents need a real screen.

Open senioreng.dev on your laptop for the full experience.

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
Viewed
1
@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.