62 lines
2.2 KiB
Java
62 lines
2.2 KiB
Java
package com.example.onomatopoeiaback.service;
|
|
|
|
import com.example.onomatopoeiaback.domain.employee.Employee;
|
|
import com.example.onomatopoeiaback.domain.employee.EmployeeDTO;
|
|
import com.example.onomatopoeiaback.repository.EmployeeRepository;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.temporal.ChronoUnit;
|
|
|
|
@Service
|
|
public class EmployeeService {
|
|
|
|
private final EmployeeRepository employeeRepository;
|
|
|
|
public EmployeeService(EmployeeRepository employeeRepository) {
|
|
this.employeeRepository = employeeRepository;
|
|
}
|
|
|
|
public Employee createEmployee(EmployeeDTO employeeDTO) {
|
|
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
|
|
|
Employee employee = new Employee();
|
|
employee.setLogin(employeeDTO.getLogin());
|
|
employee.setPassword(passwordEncoder.encode(employeeDTO.getPassword()));
|
|
employee.setName(employeeDTO.getName());
|
|
employee.setPhoto(employeeDTO.getPhoto());
|
|
employee.setPosition(employeeDTO.getPosition());
|
|
|
|
employee = employeeRepository.saveAndFlush(employee);
|
|
return employee;
|
|
}
|
|
|
|
public HttpStatus auth(String login) {
|
|
Employee employee = employeeRepository.getEmployeesByLogin(login);
|
|
|
|
if (employee == null) return HttpStatus.UNAUTHORIZED;
|
|
LocalDateTime localDateTime = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS);
|
|
employee.setLastVisit(localDateTime);
|
|
employeeRepository.save(employee);
|
|
|
|
return HttpStatus.OK;
|
|
}
|
|
|
|
public ResponseEntity<Employee> info(String login) {
|
|
Employee employee = employeeRepository.getEmployeesByLogin(login);
|
|
HttpStatus response_status = HttpStatus.OK;
|
|
|
|
if (employee == null) response_status = HttpStatus.UNAUTHORIZED;
|
|
else {
|
|
LocalDateTime localDateTime = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS);
|
|
employee.setLastVisit(localDateTime);
|
|
employeeRepository.save(employee);
|
|
}
|
|
|
|
return new ResponseEntity<>(employee, response_status);
|
|
}
|
|
}
|