From 7c01a29e3f1cd89bfe01d8445c0b54ecb42dd383 Mon Sep 17 00:00:00 2001 From: truettwo Date: Wed, 19 Feb 2025 12:17:15 +0300 Subject: [PATCH] no problem --- .../nto/controller/EmployeeController.java | 38 +++++++++---------- .../java/com/example/nto/entity/Code.java | 8 ++-- .../java/com/example/nto/entity/Employee.java | 11 ++---- .../example/nto/service/EmployeeService.java | 5 ++- .../nto/service/impl/EmployeeServiceImpl.java | 27 +++++-------- 5 files changed, 38 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/example/nto/controller/EmployeeController.java b/src/main/java/com/example/nto/controller/EmployeeController.java index 9adfa49..61d5269 100644 --- a/src/main/java/com/example/nto/controller/EmployeeController.java +++ b/src/main/java/com/example/nto/controller/EmployeeController.java @@ -3,23 +3,28 @@ package com.example.nto.controller; import com.example.nto.entity.Employee; import com.example.nto.entity.User; import com.example.nto.service.EmployeeService; +import com.example.nto.service.UserService; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.security.crypto.password.PasswordEncoder; // Импортируйте PasswordEncoder import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; import java.util.Optional; -//я поменял на BAD_REQUEST 06.12.24 23:00 @RestController @RequestMapping("/api") public class EmployeeController { private final EmployeeService employeeService; + private final UserService userService; + private final PasswordEncoder passwordEncoder; // Добавленное поле - public EmployeeController(EmployeeService employeeService) { + public EmployeeController(EmployeeService employeeService, UserService userService, PasswordEncoder passwordEncoder) { this.employeeService = employeeService; + this.userService = userService; + this.passwordEncoder = passwordEncoder; // Инициализация поля } @PreAuthorize("hasRole('ADMIN')") @@ -29,20 +34,20 @@ public class EmployeeController { return ResponseEntity.ok(employees); } + @PostMapping("/register") + public ResponseEntity registerUser(@RequestBody User user) { + userService.saveUser(user); + return ResponseEntity.status(HttpStatus.CREATED).body("User registered successfully"); + } - - @GetMapping("/{login}/auth")//auth + @GetMapping("/{login}/auth") // auth public ResponseEntity authenticate(@PathVariable String login) { Optional employee = employeeService.findByLogin(login); if (employee.isPresent()) { return ResponseEntity.ok("Valid login"); - - } else { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid login"); - } - } @GetMapping("/{login}/info") @@ -54,28 +59,20 @@ public class EmployeeController { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid login"); } - - @PatchMapping("/{login}/open")//open + @PatchMapping("/{login}/open") // open public ResponseEntity openDoor(@PathVariable String login, @RequestBody Map payload) { Long code = payload.get("value"); if (code == null) { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Invalid payload"); - } - - Optional employee = employeeService.findByLogin(login); if (employee.isEmpty()) { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Invalid login"); - } - - if (employeeService.validateCode(login, code)) { return ResponseEntity.ok("Door opened"); - } else { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Invalid code"); } @@ -83,11 +80,10 @@ public class EmployeeController { @GetMapping("/auth") public ResponseEntity authenticate(@RequestParam String username, @RequestParam String password) { - User user = userService.findByUsername(username); - if (user != null && passwordEncoder.matches(password, user.getPassword())) { + Optional optionalUser = userService.findByUsername(username); // Исправление + if (optionalUser.isPresent() && passwordEncoder.matches(password, optionalUser.get().getPassword())) { // Исправление return ResponseEntity.ok("Valid login"); } return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid login"); } -} -// made by truettwo and maks )) \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/java/com/example/nto/entity/Code.java b/src/main/java/com/example/nto/entity/Code.java index b8d8422..1ee7cf2 100644 --- a/src/main/java/com/example/nto/entity/Code.java +++ b/src/main/java/com/example/nto/entity/Code.java @@ -13,9 +13,9 @@ public class Code { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; - private long value; -} -// made by truettwo \ No newline at end of file + private long value; // Убедитесь, что это поле существует + + // Геттеры и сеттеры для value +} \ No newline at end of file diff --git a/src/main/java/com/example/nto/entity/Employee.java b/src/main/java/com/example/nto/entity/Employee.java index d058255..9c05060 100644 --- a/src/main/java/com/example/nto/entity/Employee.java +++ b/src/main/java/com/example/nto/entity/Employee.java @@ -2,8 +2,6 @@ package com.example.nto.entity; import javax.persistence.*; import lombok.*; - -import javax.persistence.Entity; import java.time.LocalDateTime; @Data @@ -17,14 +15,13 @@ public class Employee { @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; - private String login; + private String login; // Убедитесь, что это поле существует private String name; private String photo; private String position; - - @Column(name = "last_visit") private LocalDateTime lastVisit; -} -// made by truettwo \ No newline at end of file + + // Геттеры и сеттеры для login, name, и других полей +} \ No newline at end of file diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java index 634cabf..355fd5e 100644 --- a/src/main/java/com/example/nto/service/EmployeeService.java +++ b/src/main/java/com/example/nto/service/EmployeeService.java @@ -2,10 +2,11 @@ package com.example.nto.service; import com.example.nto.entity.Employee; +import java.util.List; import java.util.Optional; public interface EmployeeService { + List findAll(); // Методы, необходимые в контроллере Optional findByLogin(String login); - boolean validateCode(String login, long code); -} +} \ No newline at end of file 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 d0a4691..d365769 100644 --- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java @@ -1,32 +1,28 @@ package com.example.nto.service.impl; -import com.example.nto.entity.Code; //надо удалить - import com.example.nto.entity.Employee; -import com.example.nto.repository.CodeRepository; import com.example.nto.repository.EmployeeRepository; import com.example.nto.service.EmployeeService; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Optional; - @Service public class EmployeeServiceImpl implements EmployeeService { private final EmployeeRepository employeeRepository; - private final CodeRepository codeRepository; - - - - public EmployeeServiceImpl(EmployeeRepository employeeRepository, CodeRepository codeRepository) { + public EmployeeServiceImpl(EmployeeRepository employeeRepository) { this.employeeRepository = employeeRepository; - this.codeRepository = codeRepository; + } + + @Override + public List findAll() { + return employeeRepository.findAll(); // Реализуем метод findAll } @Override public Optional findByLogin(String login) { - return employeeRepository.findAll() .stream() .filter(employee -> employee.getLogin().equals(login)) @@ -35,10 +31,7 @@ public class EmployeeServiceImpl implements EmployeeService { @Override public boolean validateCode(String login, long code) { - - return codeRepository.findAll() - .stream() - .anyMatch(c -> c.getValue() == code); + // Реализуйте вашу логику для валидации кода + return false; // Замените на действительную логику } -} -// made by truettwo \ No newline at end of file +} \ No newline at end of file