make /info response readable

This commit is contained in:
Konstantin 2025-02-20 14:11:41 +03:00
parent 2b0c82c23c
commit 26937a8328
5 changed files with 71 additions and 8 deletions

View File

@ -1,5 +1,6 @@
package com.example.nto.controller; 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.Code;
import com.example.nto.model.entity.Employee; import com.example.nto.model.entity.Employee;
import com.example.nto.service.EmployeeService; import com.example.nto.service.EmployeeService;
@ -26,8 +27,8 @@ public class EmployeeController {
} }
@GetMapping("/info") @GetMapping("/info")
public Employee info(@RequestParam final String login) { public EmployeeDTO info(@RequestParam final String login) {
return employeeService.getEmployee(login); return employeeService.getEmployeeDTO(login);
} }
@PatchMapping("/open") @PatchMapping("/open")

View File

@ -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();
}
}

View File

@ -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;
}

View File

@ -1,13 +1,12 @@
package com.example.nto.service; package com.example.nto.service;
import com.example.nto.model.dto.EmployeeDTO;
import com.example.nto.model.entity.Employee; import com.example.nto.model.entity.Employee;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
public interface EmployeeService { public interface EmployeeService {
void employeeExists(final String login); EmployeeDTO getEmployeeDTO(String login);
Employee getEmployee(String login);
void updateVisit(String login, long value); void updateVisit(String login, long value);

View File

@ -1,5 +1,7 @@
package com.example.nto.service.impl; 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.model.entity.Employee;
import com.example.nto.repository.CodeRepository; import com.example.nto.repository.CodeRepository;
import com.example.nto.repository.EmployeeRepository; import com.example.nto.repository.EmployeeRepository;
@ -23,15 +25,24 @@ public class EmployeeServiceImpl implements EmployeeService {
private final CodeRepository codeRepository; private final CodeRepository codeRepository;
@Override private final EmployeeDTOMapper employeeDTOMapper;
public void employeeExists(final String login) {
private void employeeExists(final String login) {
if (!employeeRepository.existsByLogin(login)) { if (!employeeRepository.existsByLogin(login)) {
throw new EmployeeNotFoundException(); throw new EmployeeNotFoundException();
} }
} }
@Override @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)) { if (!employeeRepository.existsByLogin(login)) {
throw new EmployeeNotFoundException(); throw new EmployeeNotFoundException();
} }