package parkup.services; import java.util.List; import java.util.Objects; import java.util.Optional; import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import parkup.entities.RegistriranParkirac; import parkup.repositories.RegistriranParkiracRepository; @Service public class RegistriranParkiracService { private final RegistriranParkiracRepository registriranParkiracRepository; @Autowired public RegistriranParkiracService(RegistriranParkiracRepository registriranParkiracRepository) { this.registriranParkiracRepository = registriranParkiracRepository; } public List getRegPark() { return this.registriranParkiracRepository.findAll(); } public void addRegPark(RegistriranParkirac regPark) { Optional regParkOpt = this.registriranParkiracRepository.findRegistriranParkiracByEmail(regPark.getEmail()); if (regParkOpt.isPresent()) { throw new IllegalStateException("Email already taken, try adding a registriranParkirac with a different valid email address"); } else { System.out.println(regPark); this.registriranParkiracRepository.save(regPark); } } @Transactional public void updateRegPark(int regParkId, String name, String surname, String mobile, String email) { Optional regParkOpt = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId)); if (regParkOpt.isPresent()) { RegistriranParkirac regParkNov = this.registriranParkiracRepository.findByRegParkId(regParkId); if (email != null && email.length() > 1 && email.contains("@") && !Objects.equals(regParkNov.getEmail(), email)) { Optional userOpt1 = this.registriranParkiracRepository.findRegistriranParkiracByEmail(email); if (userOpt1.isPresent()) { throw new IllegalStateException("email taken"); } regParkNov.setEmail(email); } if (name != null && name.length() > 1 && !Objects.equals(regParkNov.getName(), name)) { regParkNov.setName(name); } if (surname != null && surname.length() > 1 && !Objects.equals(regParkNov.getSurname(), surname)) { regParkNov.setSurname(surname); } if (mobile != null && mobile.length() > 0 && !Objects.equals(regParkNov.getMobile(), mobile)) { regParkNov.setMobile(mobile); } } } public void deleteRegPark(int regParkId) { Optional regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId)); if (regPark.isPresent()) { this.registriranParkiracRepository.deleteByRegParkId(regParkId); } else { throw new IllegalStateException("RegistriranParkirac doesn't exist, therefore can't be deleted"); } } public RegistriranParkirac findById(int regParkId) { Optional regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId)); return regPark.orElse(null); } }