From 6501d3098fab3e5c448d4cc1fe34bba79ab90e32 Mon Sep 17 00:00:00 2001 From: Denis Oleynik <oleynik.denis.2009@gmail.com> Date: Thu, 20 Feb 2025 12:20:22 +0300 Subject: [PATCH] Add admin endpoint /{username}/block --- .../nto/controller/AdminController.java | 19 +++++++++++++++++++ .../nto/controller/GlobalController.java | 2 +- .../example/nto/service/EmployeeService.java | 2 ++ .../nto/service/impl/EmployeeServiceImpl.java | 7 +++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/nto/controller/AdminController.java b/src/main/java/com/example/nto/controller/AdminController.java index 0f06af0..1a89976 100644 --- a/src/main/java/com/example/nto/controller/AdminController.java +++ b/src/main/java/com/example/nto/controller/AdminController.java @@ -55,4 +55,23 @@ public class AdminController { return new ResponseEntity<>(visits.get(), HttpStatus.OK); } + + @PostMapping("/{username}/block") + public ResponseEntity<?> blockEmployee(@PathVariable("username") String username) { + Optional<Employee> employee = employeeService.findByLogin(username); + if (employee.isEmpty()) { + return utils.NotFound("EmployeeNotFound"); + } + + + + employeeService.block(employee.get().getId()); + + String prefix = "B"; + if (employee.get().getBlocked()) { + prefix = "Unb"; + } + + return utils.Ok("Employee" + prefix + "lockedSuccess"); + } } diff --git a/src/main/java/com/example/nto/controller/GlobalController.java b/src/main/java/com/example/nto/controller/GlobalController.java index 4fc58ae..5a420f1 100644 --- a/src/main/java/com/example/nto/controller/GlobalController.java +++ b/src/main/java/com/example/nto/controller/GlobalController.java @@ -28,6 +28,6 @@ public class GlobalController { }) public ResponseEntity<ResponseData> login() { - return utils.Ok("Auth success!"); + return utils.Ok("AuthSuccess"); } } diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java index d4e904a..9832db7 100644 --- a/src/main/java/com/example/nto/service/EmployeeService.java +++ b/src/main/java/com/example/nto/service/EmployeeService.java @@ -23,6 +23,8 @@ public interface EmployeeService { Optional<Employee> findByLogin(String login); + void block(long Id); + Optional<Code> findCodeById(Long id); List<Employee> getAllEmployees(); 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 40c204f..772a6a7 100644 --- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java @@ -28,6 +28,13 @@ public class EmployeeServiceImpl implements EmployeeService { return EmployeeRepository.findByLogin(login); } + @Override + public void block(long Id) { + Employee employee = EmployeeRepository.getById(Id); + employee.setBlocked(!employee.getBlocked()); + EmployeeRepository.save(employee); + } + @Override public Optional<Code> findCodeById(Long id) { return Optional.of(codeRepository.getById(id));