source: src/main/java/com/example/salonbella/service/mail/ConfirmationTokenService.java@ 4d7e387

Last change on this file since 4d7e387 was 4d7e387, checked in by makyjovanovsky <mjovanovski04@…>, 17 months ago

commit 1

  • Property mode set to 100644
File size: 1.8 KB
Line 
1package com.example.salonbella.service.mail;
2
3import com.example.salonbella.entity.ConfirmationTokenEntity;
4import com.example.salonbella.entity.UserEntity;
5import com.example.salonbella.repository.ConfirmationTokenRepository;
6import com.example.salonbella.repository.UserRepository;
7import org.springframework.beans.factory.annotation.Autowired;
8import org.springframework.stereotype.Service;
9
10import javax.transaction.Transactional;
11import java.time.LocalDateTime;
12import java.util.Optional;
13
14@Service
15public class ConfirmationTokenService {
16 private final ConfirmationTokenRepository confirmationTokenRepository;
17 private final UserRepository userRepository;
18
19 @Autowired
20 public ConfirmationTokenService(ConfirmationTokenRepository confirmationTokenRepository, UserRepository userRepository) {
21 this.confirmationTokenRepository = confirmationTokenRepository;
22 this.userRepository = userRepository;
23 }
24
25
26 public void saveConfirmationToken(ConfirmationTokenEntity confirmationTokenEntity) {
27 confirmationTokenRepository.save(confirmationTokenEntity);
28 }
29
30 @Transactional
31 public void confirmToken(String token) throws Exception {
32 ConfirmationTokenEntity confirmationTokenEntity = confirmationTokenRepository.findByToken(token).orElseThrow(IllegalStateException::new);
33 if (confirmationTokenEntity.getConfirmedAt() != null) {
34 throw new Exception();
35 }
36 LocalDateTime expiresAt = confirmationTokenEntity.getExpiresAt();
37
38 if (expiresAt.isBefore(LocalDateTime.now())) {
39 throw new Exception();
40 }
41
42 Optional<UserEntity> userEntity = userRepository.findById(confirmationTokenEntity.getUser().getId());
43 userEntity.ifPresent(entity -> entity.setValid(true));
44 confirmationTokenRepository.delete(confirmationTokenEntity);
45
46 }
47}
Note: See TracBrowser for help on using the repository browser.