diff --git a/src/main/java/com/example/nto/controller/EmployeeController.java b/src/main/java/com/example/nto/controller/EmployeeController.java index bf49fa7..ae7121d 100644 --- a/src/main/java/com/example/nto/controller/EmployeeController.java +++ b/src/main/java/com/example/nto/controller/EmployeeController.java @@ -1,5 +1,6 @@ package com.example.nto.controller; +import com.example.nto.model.dto.EmployeeDTO; import com.example.nto.model.entity.Code; import com.example.nto.model.entity.Employee; import com.example.nto.service.EmployeeService; @@ -26,8 +27,8 @@ public class EmployeeController { } @GetMapping("/info") - public Employee info(@RequestParam final String login) { - return employeeService.getEmployee(login); + public EmployeeDTO info(@RequestParam final String login) { + return employeeService.getEmployeeDTO(login); } @PatchMapping("/open") diff --git a/src/main/java/com/example/nto/mapper/EmployeeDTOMapper.java b/src/main/java/com/example/nto/mapper/EmployeeDTOMapper.java new file mode 100644 index 0000000..2dea19b --- /dev/null +++ b/src/main/java/com/example/nto/mapper/EmployeeDTOMapper.java @@ -0,0 +1,20 @@ +package com.example.nto.mapper; + +import com.example.nto.model.dto.EmployeeDTO; +import com.example.nto.model.entity.Employee; +import org.springframework.stereotype.Component; + +@Component +public class EmployeeDTOMapper { + public EmployeeDTO map (final Employee employee) { + return EmployeeDTO.builder() + .name(employee.getName()) + .login(employee.getLogin()) + .photo(employee.getPhoto()) + .position(employee.getPosition()) + .lastVisit(employee.getLastVisit()) + .role(employee.getRole()) + .isBanned(employee.getIsBanned()) + .build(); + } +} diff --git a/src/main/java/com/example/nto/model/dto/EmployeeDTO.java b/src/main/java/com/example/nto/model/dto/EmployeeDTO.java new file mode 100644 index 0000000..b9f66c5 --- /dev/null +++ b/src/main/java/com/example/nto/model/dto/EmployeeDTO.java @@ -0,0 +1,32 @@ +package com.example.nto.model.dto; + +import com.example.nto.model.EmployeeRoleType; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EmployeeDTO { + private String login; + + private String name; + + private String photo; + + private String position; + + private LocalDateTime lastVisit; + + @Enumerated(EnumType.STRING) + private EmployeeRoleType role; + + private Boolean isBanned; +} diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java index 9c0c6b8..c918773 100644 --- a/src/main/java/com/example/nto/service/EmployeeService.java +++ b/src/main/java/com/example/nto/service/EmployeeService.java @@ -1,13 +1,12 @@ package com.example.nto.service; +import com.example.nto.model.dto.EmployeeDTO; import com.example.nto.model.entity.Employee; import org.springframework.security.core.userdetails.UserDetails; public interface EmployeeService { - void employeeExists(final String login); - - Employee getEmployee(String login); + EmployeeDTO getEmployeeDTO(String login); void updateVisit(String login, long value); diff --git a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java index 3813196..abe813a 100644 --- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java @@ -1,5 +1,7 @@ package com.example.nto.service.impl; +import com.example.nto.mapper.EmployeeDTOMapper; +import com.example.nto.model.dto.EmployeeDTO; import com.example.nto.model.entity.Employee; import com.example.nto.repository.CodeRepository; import com.example.nto.repository.EmployeeRepository; @@ -23,15 +25,24 @@ public class EmployeeServiceImpl implements EmployeeService { private final CodeRepository codeRepository; - @Override - public void employeeExists(final String login) { + private final EmployeeDTOMapper employeeDTOMapper; + + private void employeeExists(final String login) { if (!employeeRepository.existsByLogin(login)) { throw new EmployeeNotFoundException(); } } @Override - public Employee getEmployee(final String login) { + public EmployeeDTO getEmployeeDTO(final String login) { + if (!employeeRepository.existsByLogin(login)) { + throw new EmployeeNotFoundException(); + } + var e = employeeRepository.findEmployeeByLogin(login); + return employeeDTOMapper.map(e); + } + + private Employee getEmployee(final String login) { if (!employeeRepository.existsByLogin(login)) { throw new EmployeeNotFoundException(); }