package parkup.services; import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.UUID; import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import parkup.entities.Vraboten; import parkup.repositories.VrabotenRepository; @Service public class VrabotenService { private final VrabotenRepository vrabotenRepository; @Autowired public VrabotenService(VrabotenRepository vrabotenRepository) { this.vrabotenRepository = vrabotenRepository; } public List getVraboteni() { return this.vrabotenRepository.findAll(); } public Vraboten findById(int vrabotenId) { Optional vraboten = Optional.ofNullable(this.vrabotenRepository.findByVrabotenId(vrabotenId)); return vraboten.orElse(null); } public void addVraboten(Vraboten vraboten) { Optional vrabotenOpt = this.vrabotenRepository.findVrabotenByEmail(vraboten.getEmail()); if (vrabotenOpt.isPresent()) { throw new IllegalStateException("Email already taken, try adding a vraboten with a different valid email address"); } else { System.out.println(vraboten); this.vrabotenRepository.save(vraboten); } } @Transactional public void updateVraboten(int vrabotenId, String firstName, String lastName, String mobile, String email) { Optional vrabotenOpt = Optional.ofNullable(this.vrabotenRepository.findByVrabotenId(vrabotenId)); if (vrabotenOpt.isPresent()) { Vraboten vrabotenNov = this.vrabotenRepository.findByVrabotenId(vrabotenId); if (email != null && email.length() > 1 && email.contains("@") && !Objects.equals(vrabotenNov.getEmail(), email)) { Optional userOpt1 = this.vrabotenRepository.findVrabotenByEmail(email); if (userOpt1.isPresent()) { throw new IllegalStateException("email taken"); } vrabotenNov.setEmail(email); } if (firstName != null && firstName.length() > 1 && !Objects.equals(vrabotenNov.getFirstName(), firstName)) { vrabotenNov.setFirstName(firstName); } if (lastName != null && lastName.length() > 1 && !Objects.equals(vrabotenNov.getLastName(), lastName)) { vrabotenNov.setLastName(lastName); } if (mobile != null && mobile.length() > 0 && !Objects.equals(vrabotenNov.getMobile(), mobile)) { vrabotenNov.setMobile(mobile); } } } public void deleteVraboten(int vrabotenId) { Optional vrabotenOpt = Optional.ofNullable(this.vrabotenRepository.findByVrabotenId(vrabotenId)); if (vrabotenOpt.isPresent()) { this.vrabotenRepository.deleteByVrabotenId(vrabotenId); } else { throw new IllegalStateException("Vraboten doesn't exist, therefore can't be deleted"); } } }