delete: unnecessary slides have been removed

This commit is contained in:
Petr Rudichev 2025-02-18 18:34:01 +03:00
parent d877b10d07
commit ba53ec8cde
9 changed files with 0 additions and 211 deletions

@ -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());
}
}

@ -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;
}

@ -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;
}

@ -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<Code, Long> {
}

@ -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<Employee, Long> {
}

@ -1,7 +0,0 @@
package com.example.nto.service;
import com.example.nto.entity.Code;
public interface CodeService {
Code getCode(Code code);
}

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

@ -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;
}
}

@ -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("Непредвиденная ошибка"); }
}
}