diff --git a/pom.xml b/pom.xml index 88282ee..9f969bd 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.example - NTO-2024 + Android-Bootcamp-2025-Backend 1.0-SNAPSHOT @@ -14,6 +14,9 @@ UTF-8 + org.springframework.boot spring-boot-starter-parent @@ -22,36 +25,47 @@ - org.projectlombok - lombok + com.h2database + h2 + + + org.liquibase + liquibase-core + + org.springframework.boot spring-boot-starter-web - - com.h2database - h2 - + org.springframework.boot spring-boot-starter-data-jpa + + + org.projectlombok + lombok + + org.springdoc springdoc-openapi-ui 1.7.0 - org.junit.jupiter - junit-jupiter-engine - test + org.projectlombok + lombok + org.springframework.boot - spring-boot-starter-test - test + spring-boot-starter-security + + + \ No newline at end of file diff --git a/src/main/java/com/example/nto/config/WebSecurityConfig.java b/src/main/java/com/example/nto/config/WebSecurityConfig.java new file mode 100644 index 0000000..8ddce5d --- /dev/null +++ b/src/main/java/com/example/nto/config/WebSecurityConfig.java @@ -0,0 +1,5 @@ +package com.example.nto.config; + +public class WebSecurityConfig { + +} diff --git a/src/main/java/com/example/nto/dto/EmployeeRegisterDTO.java b/src/main/java/com/example/nto/dto/EmployeeRegisterDTO.java new file mode 100644 index 0000000..c837eed --- /dev/null +++ b/src/main/java/com/example/nto/dto/EmployeeRegisterDTO.java @@ -0,0 +1,10 @@ +package com.example.nto.dto; + +import lombok.Data; + +@Data +public class EmployeeRegisterDTO { + private String login; + private String name; + private String password; +} diff --git a/src/main/java/com/example/nto/entity/Code.java b/src/main/java/com/example/nto/entity/Code.java index 0dec04e..b1e64cb 100644 --- a/src/main/java/com/example/nto/entity/Code.java +++ b/src/main/java/com/example/nto/entity/Code.java @@ -7,7 +7,6 @@ import javax.persistence.*; @Data @Entity @Builder -@NoArgsConstructor @AllArgsConstructor @Getter public class Code { diff --git a/src/main/java/com/example/nto/entity/Employee.java b/src/main/java/com/example/nto/entity/Employee.java index 5eea5ac..f387774 100644 --- a/src/main/java/com/example/nto/entity/Employee.java +++ b/src/main/java/com/example/nto/entity/Employee.java @@ -1,18 +1,14 @@ package com.example.nto.entity; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; import javax.persistence.*; import java.time.LocalDateTime; @Data @Entity -@Builder -@NoArgsConstructor -@AllArgsConstructor +@Table(name="employee") public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -22,10 +18,12 @@ public class Employee { private String login; @Column(name = "name") private String name; - @Column(name = "photo") - private String photo; + @Column(name="password") + private String password; + @Column(name = "photo_url") + private String photoUrl; @Column(name = "position") private String position; - @Column(name = "lastVisit") + @Column(name = "last_visit") private LocalDateTime lastVisit; } diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java index 1d21330..48d16f6 100644 --- a/src/main/java/com/example/nto/service/EmployeeService.java +++ b/src/main/java/com/example/nto/service/EmployeeService.java @@ -4,7 +4,5 @@ import com.example.nto.entity.Code; import com.example.nto.entity.Employee; public interface EmployeeService { - String getAuth(String login); - Employee getInfo(String login); - String patchOpen(String login, long value); + } 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 47feabf..ce5eb31 100644 --- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java @@ -41,7 +41,7 @@ public class EmployeeServiceImpl implements EmployeeService { } @Override - public String patchOpen(String login, long value) { + public String patchOpen(String login, long value) { // Сделать возвращение статуса, а не строчки Employee employeeLogin=employeeRepository.findByLogin(login); Code codeValue=codeRepository.findByValue(value); if(employeeLogin==null) { diff --git a/src/main/java/com/example/nto/util/EmployeeMapper.java b/src/main/java/com/example/nto/util/EmployeeMapper.java new file mode 100644 index 0000000..84824a7 --- /dev/null +++ b/src/main/java/com/example/nto/util/EmployeeMapper.java @@ -0,0 +1,17 @@ +package com.example.nto.util; + +import com.example.nto.dto.EmployeeRegisterDTO; +import com.example.nto.entity.Employee; +import lombok.experimental.UtilityClass; + +@UtilityClass +public class EmployeeMapper { + public EmployeeRegisterDTO convertToRegisterDTO(Employee employee){ + EmployeeRegisterDTO employeeRegisterDTO = new EmployeeRegisterDTO(); + employeeRegisterDTO.setLogin(employee.getLogin()); + employeeRegisterDTO.setPassword(employee.getPassword()); + employeeRegisterDTO.setName(employee.getName()); + + return employeeRegisterDTO; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c6bfd72..73a1d48 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,28 +1,17 @@ spring: - - datasource: + datasourse: url: jdbc:h2:mem:testdb h2: console: - #enabled: false enabled: true + liquibase: + enabled: true + change-log: classpath:db.changelog/1.0/db.changelog-master.xml + jpa: - #generate-ddl: false - generate-ddl: true - + generate-ddl: false hibernate: - #ddl-auto: none - ddl-auto: create-drop - - # Показываем запросы - show-sql: true - - # Своевременный запуск data.sql - defer-datasource-initialization: true - - spring-doc: - swagger-ui: - path: /swagger-ui.html - operationsSorter: method \ No newline at end of file + ddl-auto: none + show-sql: true \ No newline at end of file diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql deleted file mode 100644 index 03720a9..0000000 --- a/src/main/resources/data.sql +++ /dev/null @@ -1,14 +0,0 @@ -INSERT INTO employee (id, login, name, photo, position, last_visit) -VALUES -(1, 'pivanov', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30'), -(2, 'ipetrov', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T08:35'), -(3, 'asemenov', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31'), -(4, 'afedorov', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36'); - -INSERT INTO code (value) -VALUES -(1234567890123456789), -(9223372036854775807), -(1122334455667788990), -(998877665544332211), -(5566778899001122334); \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0001-employee.xml b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0001-employee.xml new file mode 100644 index 0000000..74dce1f --- /dev/null +++ b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0001-employee.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0002-code.xml b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0002-code.xml new file mode 100644 index 0000000..1a5ef32 --- /dev/null +++ b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0002-code.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0003-authority.xml b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0003-authority.xml new file mode 100644 index 0000000..6005d57 --- /dev/null +++ b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0003-authority.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0004-employee-authority.xml b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0004-employee-authority.xml new file mode 100644 index 0000000..413653d --- /dev/null +++ b/src/main/resources/db.changelog/1.0/1.0/2025-02-18-0004-employee-authority.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/data/2025-02-18-0001-employee-data.xml b/src/main/resources/db.changelog/1.0/data/2025-02-18-0001-employee-data.xml new file mode 100644 index 0000000..abdd5eb --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/2025-02-18-0001-employee-data.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/data/2025-02-18-0002-code-data.xml b/src/main/resources/db.changelog/1.0/data/2025-02-18-0002-code-data.xml new file mode 100644 index 0000000..fe67e6b --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/2025-02-18-0002-code-data.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/data/2025-02-18-0003-authority-data.xml b/src/main/resources/db.changelog/1.0/data/2025-02-18-0003-authority-data.xml new file mode 100644 index 0000000..d574058 --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/2025-02-18-0003-authority-data.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/data/2025-02-18-0004-employee-authority-data.xml b/src/main/resources/db.changelog/1.0/data/2025-02-18-0004-employee-authority-data.xml new file mode 100644 index 0000000..8d83aed --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/2025-02-18-0004-employee-authority-data.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0001-employee-data.csv b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0001-employee-data.csv new file mode 100644 index 0000000..8eebab1 --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0001-employee-data.csv @@ -0,0 +1,8 @@ +login;name;password;position;photo_url;last_visit +pivanov;Иванов Петр Федорович;abcd;Разработчик;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;2024-02-12T08:30:21 +ipetrov;Петров Иван Константинович;abcd;Аналитик;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;2024-02-13T08:35:44 +asemenov;Семенов Анатолий Анатольевич;abcd;Разработчик;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;2024-02-13T08:31:33 +afedorov;Федоров Александр Сергеевич;abcd;Тестировщик;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;2024-02-12T08:36:09 + + + diff --git a/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0002-code-data.csv b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0002-code-data.csv new file mode 100644 index 0000000..6d381a6 --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0002-code-data.csv @@ -0,0 +1,8 @@ +value +1234567890123456789 +9223372036854775807 +1122334455667788990 +998877665544332211 +5566778899001122334 + + diff --git a/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0003-authority-data.csv b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0003-authority-data.csv new file mode 100644 index 0000000..2de6959 --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0003-authority-data.csv @@ -0,0 +1,3 @@ +authorities +ROLE_USER +ROLE_ADMIN \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0004-employee-authority-data.csv b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0004-employee-authority-data.csv new file mode 100644 index 0000000..6e6f6fb --- /dev/null +++ b/src/main/resources/db.changelog/1.0/data/csv/2025-02-18-0004-employee-authority-data.csv @@ -0,0 +1,5 @@ +employee_id;authority_id +1;1 +2;1 +3;1 +4;1 \ No newline at end of file diff --git a/src/main/resources/db.changelog/1.0/db.changelog-master.xml b/src/main/resources/db.changelog/1.0/db.changelog-master.xml new file mode 100644 index 0000000..6bf3c31 --- /dev/null +++ b/src/main/resources/db.changelog/1.0/db.changelog-master.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file