diff --git a/src/main/java/com/company/agentfoundation/directory/EmployeeDirectoryService.java b/src/main/java/com/company/agentfoundation/directory/EmployeeDirectoryService.java index cd5aac6..9995217 100644 --- a/src/main/java/com/company/agentfoundation/directory/EmployeeDirectoryService.java +++ b/src/main/java/com/company/agentfoundation/directory/EmployeeDirectoryService.java @@ -3,6 +3,7 @@ package com.company.agentfoundation.directory; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; import java.util.Optional; @@ -45,21 +46,29 @@ public class EmployeeDirectoryService { return Optional.empty(); } - List permissions = jdbcTemplate.query(""" - SELECT source_system, permission_type, scope_path, scope_name - FROM employee_data_permission - WHERE employee_id = ? - ORDER BY source_system, permission_type, scope_path - """, - (rs, rowNum) -> new EmployeeDataPermission( - rs.getString("source_system"), - rs.getString("permission_type"), - rs.getString("scope_path"), - rs.getString("scope_name") - ), - accounts.get(0).id() - ); + List permissions = findPermissions(accounts.get(0).id()); return Optional.of(new EmployeeDirectoryResponse(accounts.get(0), permissions)); } + + private List findPermissions(Long employeeId) { + try { + return jdbcTemplate.query(""" + SELECT source_system, permission_type, scope_path, scope_name + FROM employee_data_permission + WHERE employee_id = ? + ORDER BY source_system, permission_type, scope_path + """, + (rs, rowNum) -> new EmployeeDataPermission( + rs.getString("source_system"), + rs.getString("permission_type"), + rs.getString("scope_path"), + rs.getString("scope_name") + ), + employeeId + ); + } catch (Exception ignored) { + return Collections.emptyList(); + } + } }