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));