- Timestamp:
- 11/04/21 16:59:49 (3 years ago)
- Branches:
- master
- Children:
- 9504a09
- Parents:
- ce6ad22
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sources/app/src/main/java/parkup/services/RegistriranParkiracService.java
rce6ad22 rf6bc52d 1 1 package parkup.services; 2 2 3 import java.time.LocalDateTime; 3 4 import java.util.List; 4 5 import java.util.Objects; 5 6 import java.util.Optional; 7 import java.util.UUID; 6 8 import javax.transaction.Transactional; 7 9 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.data.jpa.repository.Modifying; 11 import org.springframework.security.core.userdetails.UserDetails; 12 import org.springframework.security.core.userdetails.UserDetailsService; 13 import org.springframework.security.core.userdetails.UsernameNotFoundException; 14 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 8 15 import org.springframework.stereotype.Service; 16 import parkup.configs.email.EmailValidator; 17 import parkup.configs.token.ConfirmationTokenRP; 18 import parkup.configs.token.ConfirmationTokenService; 19 import parkup.data.Tablicka; 9 20 import parkup.entities.RegistriranParkirac; 10 21 import parkup.repositories.RegistriranParkiracRepository; 11 22 12 23 @Service 13 public class RegistriranParkiracService {24 public class RegistriranParkiracService implements UserDetailsService { 14 25 private final RegistriranParkiracRepository registriranParkiracRepository; 26 private final BCryptPasswordEncoder bCryptPasswordEncoder; 27 private final ConfirmationTokenService confirmationTokenService; 28 private EmailValidator emailValidator; 15 29 16 30 @Autowired 17 public RegistriranParkiracService(RegistriranParkiracRepository registriranParkiracRepository ) {31 public RegistriranParkiracService(RegistriranParkiracRepository registriranParkiracRepository, BCryptPasswordEncoder bCryptPasswordEncoder, ConfirmationTokenService confirmationTokenService) { 18 32 this.registriranParkiracRepository = registriranParkiracRepository; 33 this.bCryptPasswordEncoder = bCryptPasswordEncoder; 34 this.confirmationTokenService = confirmationTokenService; 19 35 } 20 36 … … 23 39 } 24 40 25 public voidaddRegPark(RegistriranParkirac regPark) {41 public Optional<RegistriranParkirac> addRegPark(RegistriranParkirac regPark) { 26 42 Optional<RegistriranParkirac> regParkOpt = this.registriranParkiracRepository.findRegistriranParkiracByEmail(regPark.getEmail()); 27 43 if (regParkOpt.isPresent()) { 28 44 throw new IllegalStateException("Email already taken, try adding a registriranParkirac with a different valid email address"); 29 45 } else { 30 System.out.println(regPark); 31 this.registriranParkiracRepository.save(regPark); 46 if (regPark.getEmail() != null && regPark.getEmail().length() > 1 && regPark.getEmail().contains("@")) { 47 //System.out.println(regPark); 48 this.registriranParkiracRepository.save(regPark); 49 } 50 else { 51 throw new IllegalStateException("email not valid"); 52 } 32 53 } 54 return regParkOpt; 33 55 } 34 56 35 57 @Transactional 36 public void updateRegPark(int regParkId, String name, String surname, String mobile, String email) {58 public RegistriranParkirac updateRegPark(int regParkId, String name, String surname, String mobile, String email,List<Tablicka> regTablicki) { 37 59 Optional<RegistriranParkirac> regParkOpt = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId)); 38 60 if (regParkOpt.isPresent()) { … … 58 80 regParkNov.setMobile(mobile); 59 81 } 82 regParkNov.setRegTablicki(regTablicki); 83 return regParkNov; 84 }else{ 85 throw new IllegalStateException("RegistriranParkirac doesn't exist, therefore can't be updated"); 60 86 } 61 87 } 62 88 63 public void deleteRegPark(int regParkId) { 89 @Transactional 90 @Modifying 91 public Optional<RegistriranParkirac> deleteRegPark(int regParkId) { 64 92 Optional<RegistriranParkirac> regPark = Optional.ofNullable(this.registriranParkiracRepository.findByRegParkId(regParkId)); 65 93 if (regPark.isPresent()) { 94 //TODO da povikamo metod od ConfirmationTokenService za brisenje na ConfirmationTokenRP *DONE 95 //TODO da se izbrisat tablicki i da ne se dupliraat istite tablicki pri update ili add na nov registriranParkirac 96 this.confirmationTokenService.deleteByRegistriranParkirac_RegParkId(regParkId); 66 97 this.registriranParkiracRepository.deleteByRegParkId(regParkId); 67 98 } else { 68 99 throw new IllegalStateException("RegistriranParkirac doesn't exist, therefore can't be deleted"); 69 100 } 101 return regPark; 70 102 } 71 103 … … 74 106 return regPark.orElse(null); 75 107 } 108 109 @Override 110 public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { 111 return registriranParkiracRepository.findRegistriranParkiracByEmail(email) 112 .orElseThrow(() -> 113 new UsernameNotFoundException("Email not found")); 114 115 } 116 117 public String signUpRegistriranParkirac(RegistriranParkirac registriranParkirac){ 118 boolean registriranParkiracExists = registriranParkiracRepository 119 .findRegistriranParkiracByEmail(registriranParkirac.getEmail()) 120 .isPresent(); 121 if(registriranParkiracExists){ 122 // TODO check if attributes are the same and 123 // TODO if email not confirmed send confirmation email 124 125 throw new IllegalStateException("Email already taken"); 126 } 127 128 String encodedPassword = bCryptPasswordEncoder 129 .encode(registriranParkirac.getPassword()); 130 131 registriranParkirac.setPassword(encodedPassword); 132 133 registriranParkiracRepository.save(registriranParkirac); 134 135 // TODO: Send confirmation token 136 137 String token = UUID.randomUUID().toString(); 138 ConfirmationTokenRP confirmationTokenRP = new ConfirmationTokenRP( 139 token, 140 LocalDateTime.now(), 141 LocalDateTime.now().plusMinutes(15), 142 registriranParkirac 143 ); 144 145 confirmationTokenService.saveConfirmationTokenRP(confirmationTokenRP); 146 147 // TODO: SEND EMAIL 148 149 return token; 150 } 151 152 public int enableRegistriranParkirac(String email) { 153 return registriranParkiracRepository.enableRegistriranParkirac(email); 154 } 76 155 }
Note:
See TracChangeset
for help on using the changeset viewer.