delete: unnecessary slides have been removed
This commit is contained in:
parent
d877b10d07
commit
ba53ec8cde
@ -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("Непредвиденная ошибка"); }
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user