diff --git a/src/main/java/com/example/nto/controller/EmployeeController.java b/src/main/java/com/example/nto/controller/EmployeeController.java deleted file mode 100644 index 0372ccd..0000000 --- a/src/main/java/com/example/nto/controller/EmployeeController.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.example.nto.controller; - -import com.example.nto.entity.Code; -import com.example.nto.entity.Employee; -import com.example.nto.service.CodeService; -import com.example.nto.service.EmployeeService; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.*; - -import java.time.LocalDateTime; - -@RestController -@RequiredArgsConstructor -@RequestMapping("/api") -public class EmployeeController { - private final EmployeeService employeeService; - private final CodeService codeService; - - @GetMapping("/{login}/auth") - @ResponseStatus(HttpStatus.OK) // Возвращаемое по умолчанию значение. - public void verificationLogin(@PathVariable String login) { - employeeService.get(login); - } - - @GetMapping("/{login}/info") - @ResponseStatus(HttpStatus.OK) - public Employee getEmployee(@PathVariable String login) { - return employeeService.get(login); - } - - @PatchMapping("/{login}/open") - @ResponseStatus(HttpStatus.OK) - public void visit(@PathVariable String login, @RequestBody Code code) { - codeService.getCode(code); - - Employee employee = employeeService.get(login); - employeeService.update(employee, LocalDateTime.now()); - } -} diff --git a/src/main/java/com/example/nto/entity/Code.java b/src/main/java/com/example/nto/entity/Code.java deleted file mode 100644 index e64e7ef..0000000 --- a/src/main/java/com/example/nto/entity/Code.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.example.nto.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Data // Генерирует геттеры, сеттеры и тд. -@Entity // Говорит Spring, что это сущность из базы данных. -@Builder // Добавляет возможность использовать builder-стиль создания класса. ( Color.builder().setGreen(...).setBlue(...).build() ) -@NoArgsConstructor // Добавляет конструктор без аргументов. -@AllArgsConstructor // Добавляет конструктор со всеми аргументами. -@Table(name = "code") -public class Code { - @Id - private long value; -} diff --git a/src/main/java/com/example/nto/entity/Employee.java b/src/main/java/com/example/nto/entity/Employee.java deleted file mode 100644 index b76c01c..0000000 --- a/src/main/java/com/example/nto/entity/Employee.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.example.nto.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import java.time.LocalDateTime; - -@Data // Генерирует геттеры, сеттеры и тд. -@Entity // Говорит Spring, что это сущность из базы данных. -@Builder // Добавляет возможность использовать builder-стиль создания класса. ( Color.builder().setGreen(...).setBlue(...).build() ) -@NoArgsConstructor // Добавляет конструктор без аргументов. -@AllArgsConstructor // Добавляет конструктор со всеми аргументами. -@Table(name = "employee") -public class Employee { - @Id - private long id; - private String login; - private String name; - private String photo; - private String position; - private LocalDateTime lastVisit; -} diff --git a/src/main/java/com/example/nto/repository/CodeRepository.java b/src/main/java/com/example/nto/repository/CodeRepository.java deleted file mode 100644 index 4ca3152..0000000 --- a/src/main/java/com/example/nto/repository/CodeRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.nto.repository; - -import com.example.nto.entity.Code; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface CodeRepository extends JpaRepository { -} diff --git a/src/main/java/com/example/nto/repository/EmployeeRepository.java b/src/main/java/com/example/nto/repository/EmployeeRepository.java deleted file mode 100644 index e1265db..0000000 --- a/src/main/java/com/example/nto/repository/EmployeeRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.nto.repository; - -import com.example.nto.entity.Employee; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface EmployeeRepository extends JpaRepository { -} diff --git a/src/main/java/com/example/nto/service/CodeService.java b/src/main/java/com/example/nto/service/CodeService.java deleted file mode 100644 index 1b35aa3..0000000 --- a/src/main/java/com/example/nto/service/CodeService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.nto.service; - -import com.example.nto.entity.Code; - -public interface CodeService { - Code getCode(Code code); -} diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java deleted file mode 100644 index 8e5120f..0000000 --- a/src/main/java/com/example/nto/service/EmployeeService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.nto.service; - -import com.example.nto.entity.Employee; - -import java.time.LocalDateTime; - -public interface EmployeeService { - Employee get(String login); - Employee update(Employee employee, LocalDateTime last_visit); -} diff --git a/src/main/java/com/example/nto/service/impl/CodeServiceImpl.java b/src/main/java/com/example/nto/service/impl/CodeServiceImpl.java deleted file mode 100644 index da08ad1..0000000 --- a/src/main/java/com/example/nto/service/impl/CodeServiceImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.example.nto.service.impl; - -import com.example.nto.aspect.annotation.LogExample; -import com.example.nto.entity.Code; -import com.example.nto.exception.SomethingWentWrongException; -import com.example.nto.repository.CodeRepository; -import com.example.nto.service.CodeService; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - - -@Service -@RequiredArgsConstructor -public class CodeServiceImpl implements CodeService { - // Класс отвечает за основную логику приложения. Тут мы получаем из бд и обработав их возвращаем клиенту. - - private final CodeRepository codeRepository; // Это объект для работы с бд. - - @LogExample - @Override - public Code getCode(Code code) { - // В ТЗ написано `401 - логина не существует или неверный`. - // Вообще тут спорный момент, надо ли возвращать 401, если `Code` не существует. - // Так что напишу здесь два варианта, авось какой-нибудь прокатит. - - // final String error_message = "QR-код с кодом " + code.getValue() + " не найден!"; - // - // try { - // codeRepository.findById(code.getValue()).orElseThrow(() -> new CodeNotFoundException(error_message)); - // return code; - // } - // catch (CodeNotFoundException e) { throw new CodeNotFoundException(e.getMessage()); } - // catch (Exception e) { throw new SomethingWentWrongException("Непредвиденная ошибка"); } - - // Проверка, существует ли `Code`. Если не существует, вернётся ошибка 400. - codeRepository.findById(code.getValue()).orElseThrow(() -> new SomethingWentWrongException("Непредвиденная ошибка")); - return 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 deleted file mode 100644 index b5ed8ee..0000000 --- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.example.nto.service.impl; - - -import com.example.nto.aspect.annotation.LogExample; -import com.example.nto.entity.Employee; -import com.example.nto.exception.EmployeeNotFoundException; -import com.example.nto.exception.SomethingWentWrongException; -import com.example.nto.repository.EmployeeRepository; -import com.example.nto.service.EmployeeService; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import java.time.LocalDateTime; -import java.util.Objects; - -@Service -@RequiredArgsConstructor -public class EmployeeServiceImpl implements EmployeeService { - // Класс отвечает за основную логику приложения. Тут мы получаем из бд и обработав их возвращаем клиенту. - - private final EmployeeRepository employeeRepository; // Это объект для работы с бд. - - @Override - @LogExample - public Employee get(String login) { - final String error_message = "Работник с логином " + login + " не найден!"; - - try { - return employeeRepository.findAll().stream() - .filter(e -> Objects.equals(e.getLogin(), login)).findFirst() - .orElseThrow(() -> new EmployeeNotFoundException(error_message)); - } - catch (EmployeeNotFoundException e) { throw new EmployeeNotFoundException(e.getMessage()); } - catch (Exception e) { throw new SomethingWentWrongException("Непредвиденная ошибка"); } - } - - @Override - @LogExample - public Employee update(Employee employee, LocalDateTime last_visit) { - final String error_message = "Работник с логином " + employee.getLogin() + " не найден!"; - - try { - // Проверка, что работник существует. - employeeRepository.findById(employee.getId()).orElseThrow(() -> new EmployeeNotFoundException(error_message)); - - employee.setLastVisit(last_visit); - employeeRepository.save(employee); - return employee; - } - catch (EmployeeNotFoundException e) { throw new EmployeeNotFoundException(e.getMessage()); } - catch (Exception e) { throw new SomethingWentWrongException("Непредвиденная ошибка"); } - } -}