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