diff --git a/pom.xml b/pom.xml
index 85d913d..847aba1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,10 +3,19 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
-
org.example
NTO-2024
1.0-SNAPSHOT
+ jar
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
11
diff --git a/src/main/java/com/example/nto/controller/EmployeeController.java b/src/main/java/com/example/nto/controller/EmployeeController.java
index a5d7f99..6aa1a5d 100644
--- a/src/main/java/com/example/nto/controller/EmployeeController.java
+++ b/src/main/java/com/example/nto/controller/EmployeeController.java
@@ -2,33 +2,41 @@ package com.example.nto.controller;
import com.example.nto.entity.Code;
import com.example.nto.entity.Employee;
+import com.example.nto.entity.EmployeeWithCode;
import com.example.nto.service.EmployeeService;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.v3.core.util.Json;
import javassist.tools.web.BadHttpRequest;
import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
+import java.lang.reflect.Array;
+import java.util.List;
+
@RestController
@RequestMapping("/api")
@AllArgsConstructor
public class EmployeeController {
private final EmployeeService employeeService;
- @PostMapping("/auth")
+ @GetMapping("/auth")
@ResponseStatus(HttpStatus.OK)
- public void auth(@RequestBody String login, @RequestBody String password) {
- employeeService.checkEmployee(login, password);
+ public void auth(@RequestBody Employee employee) {
+ employeeService.checkEmployee(employee);
}
@GetMapping("/info")
@ResponseStatus(HttpStatus.OK)
- public Employee info(@RequestBody String login) {
- return employeeService.getEmployee(login);
+ public Employee info(@RequestBody Employee employee) {
+ return employeeService.getEmployee(employee);
}
@PatchMapping("/open")
@ResponseStatus(HttpStatus.OK)
- public void open(@RequestBody String login, @RequestBody Code code) {
- employeeService.open(login, code);
+ public void open(@RequestBody EmployeeWithCode Data) {
+ Employee employee = Data.getEmployee();
+ Code code = (Code) Data.getCode();
+ employeeService.open(employee, code);
}
}
diff --git a/src/main/java/com/example/nto/entity/Employee.java b/src/main/java/com/example/nto/entity/Employee.java
index b8cab36..d72062d 100644
--- a/src/main/java/com/example/nto/entity/Employee.java
+++ b/src/main/java/com/example/nto/entity/Employee.java
@@ -1,5 +1,6 @@
package com.example.nto.entity;
+import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -15,21 +16,28 @@ import java.time.LocalDateTime;
@Entity
@Table(name = "employee")
public class Employee {
+ @JsonProperty(required = false)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "login")
private String login;
+ @JsonProperty(required = false)
@Column(name = "password")
private String password;
+ @JsonProperty(required = false)
@Column(name = "role")
private String role;
+ @JsonProperty(required = false)
@Column(name = "name")
private String name;
+ @JsonProperty(required = false)
@Column(name = "photo")
private String photo;
+ @JsonProperty(required = false)
@Column(name = "position")
private String position;
+ @JsonProperty(required = false)
@Column(name = "lastVisit")
private LocalDateTime lastVisit;
}
diff --git a/src/main/java/com/example/nto/entity/EmployeeWithCode.java b/src/main/java/com/example/nto/entity/EmployeeWithCode.java
new file mode 100644
index 0000000..248f742
--- /dev/null
+++ b/src/main/java/com/example/nto/entity/EmployeeWithCode.java
@@ -0,0 +1,15 @@
+package com.example.nto.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class EmployeeWithCode {
+ private Employee employee;
+ private Code code;
+}
diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java
index c9d7dbb..e8f3016 100644
--- a/src/main/java/com/example/nto/service/EmployeeService.java
+++ b/src/main/java/com/example/nto/service/EmployeeService.java
@@ -5,7 +5,7 @@ import com.example.nto.entity.Employee;
import javassist.tools.web.BadHttpRequest;
public interface EmployeeService {
- Employee getEmployee(String login);
- void checkEmployee(String login, String password);
- void open(String login, Code code);
+ Employee getEmployee(Employee employee);
+ void checkEmployee(Employee employee);
+ void open(Employee employee, Code code);
}
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 5a7c2f9..4be7bf0 100644
--- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java
+++ b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java
@@ -25,8 +25,8 @@ public class EmployeeServiceImpl implements EmployeeService {
private final BCryptPasswordEncoder bCryptPasswordEncoder;
@Override
- public Employee getEmployee(String login) throws NoSuchEmployeeException {
- List employee = employeeRepository.findByLogin(login);
+ public Employee getEmployee(Employee employee_r) throws NoSuchEmployeeException {
+ List employee = employeeRepository.findByLogin(employee_r.getLogin());
if (employee.isEmpty()) {
throw new NoSuchEmployeeException("Неверный логин или пароль");
} else {
@@ -35,16 +35,16 @@ public class EmployeeServiceImpl implements EmployeeService {
}
@Override
- public void checkEmployee(String login, String password) throws NoSuchEmployeeException{
- Employee employee = this.getEmployee(login);
- if(!(bCryptPasswordEncoder.matches(password, employee.getPassword()))) {
+ public void checkEmployee(Employee employee_r) throws NoSuchEmployeeException{
+ Employee employee = getEmployee(employee_r);
+ if(!(bCryptPasswordEncoder.matches(employee_r.getPassword(), employee.getPassword()))) {
throw new NoSuchEmployeeException("Неверный логин или пароль");
}
}
@Override
- public void open(String login, Code code) {
- getEmployee(login);
+ public void open(Employee employee_r, Code code) {
+ getEmployee(employee_r);
List codeList = codeRepository.findByCode(code.getValue());
if (codeList.isEmpty()) {
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index cd7327b..80e6807 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -3,7 +3,7 @@ VALUES
(1, 'pivanov', '$2a$13$XIDSGI7yCy8w4U2UlMVoQeTbQ18EQR.Pm1PExrGq4JkW5wDwdnu26', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30', 'Employee'),
(2, 'ipetrov', '$2a$13$Fpi5mPSNgz.PAeKXmHYBEuutZBgmNdM4fHJFGJbh2AtpLrSmsm2yO', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T02:35', 'Employee'),
(3, 'asemenov', '$2a$13$qjWp94aryBy4nJwYZkgN5uwj6VlU76f1OjezyeVunkwVMAVvvtUGG', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31', 'Employee'),
-(4, 'afedorov', '$2a$13$sKN9jIo/xvGo37YuUUpHkO03yrmODw1PvFRytxu.i.QxLqLR7O7q6', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36', 'Admin'),
+(4, 'afedorov', '$2y$13$QK7p.S0H2sNSiUPs0VhdbuohYkQDtrXERwl54Ftr65hBsw/fFsI7.', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36', 'Admin'),
(5, 'dfrolov', '$2y$13$R.c0njPlR9ZvpsU.2uHA0enJEUoXgE2Y838XaMFSewXCfkyhkxMuK', 'Фролов Данила Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Программист', '2024-02-12T08:50', 'Employee'),
(6, 'emalakhova', '$$2y$13$QZMJ3cSJKSjCiJVttlQQ4ud2.RM..gKjUM8X4GEHPxgoM1E7w6sNW', 'Малахова Елена Алексеевна', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T18:45', 'Employee'),
(7, 'kplazinich', '$2y$13$u6EVJQMUzTrt.bf3RbuTkOjHt6jHBshnX.sKlCAz3VVog/Dhm2GpK', 'Плазинич Катарина Митрофановна', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31', 'Admin'),