diff --git a/src/main/java/com/pecacm/backend/controllers/UserController.java b/src/main/java/com/pecacm/backend/controllers/UserController.java index 2e50543..6575bcf 100644 --- a/src/main/java/com/pecacm/backend/controllers/UserController.java +++ b/src/main/java/com/pecacm/backend/controllers/UserController.java @@ -8,7 +8,7 @@ import com.pecacm.backend.model.AuthenticationRequest; import com.pecacm.backend.response.AuthenticationResponse; import com.pecacm.backend.response.RegisterResponse; -import com.pecacm.backend.services.EmailService; +import com.pecacm.backend.services.VerificationService; import com.pecacm.backend.services.JwtService; import com.pecacm.backend.services.UserService; import org.springframework.data.domain.Page; @@ -25,15 +25,13 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.bind.annotation.*; -import java.awt.print.Pageable; -import java.util.List; import java.util.UUID; @RestController @RequestMapping("/v1/user") public class UserController { - private final EmailService emailService; + private final VerificationService verificationService; private final UserService userService; @@ -43,8 +41,8 @@ public class UserController { private final PasswordEncoder passwordEncoder; - public UserController(EmailService emailService, UserService userService, JwtService jwtService, AuthenticationManager authenticationManager, PasswordEncoder passwordEncoder) { - this.emailService = emailService; + public UserController(VerificationService verificationService, UserService userService, JwtService jwtService, AuthenticationManager authenticationManager, PasswordEncoder passwordEncoder) { + this.verificationService = verificationService; this.userService = userService; this.jwtService = jwtService; this.authenticationManager = authenticationManager; @@ -55,8 +53,7 @@ public UserController(EmailService emailService, UserService userService, JwtSer @PreAuthorize(Constants.HAS_ANY_ROLE) public ResponseEntity registerUser(@RequestBody User user) { userService.addUser(user, passwordEncoder); -// emailService.sendVerificationEmail(newUser); REASON : too much latency - VerificationToken token = emailService.getVerificationToken(user); + VerificationToken token = verificationService.getVerificationToken(user); return ResponseEntity.status(HttpStatus.CREATED).body(new RegisterResponse(token.getToken().toString())); } diff --git a/src/main/java/com/pecacm/backend/services/EmailService.java b/src/main/java/com/pecacm/backend/services/EmailService.java deleted file mode 100644 index 022cef6..0000000 --- a/src/main/java/com/pecacm/backend/services/EmailService.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.pecacm.backend.services; - -import com.pecacm.backend.entities.User; -import com.pecacm.backend.entities.VerificationToken; -import com.pecacm.backend.repository.VerificationTokenRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.mail.SimpleMailMessage; -import org.springframework.mail.javamail.JavaMailSender; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service -public class EmailService { - - private final JavaMailSender javaMailSender; - private final VerificationTokenRepository verificationTokenRepository; - - @Value("${verify.base.frontend}") - private String hostname; - - @Autowired - public EmailService(JavaMailSender javaMailSender, VerificationTokenRepository verificationTokenRepository) { - this.javaMailSender = javaMailSender; - this.verificationTokenRepository = verificationTokenRepository; - } - - @Transactional - public void sendVerificationEmail(User user) { - VerificationToken token = verificationTokenRepository.save( - VerificationToken.builder().user(user).build() - ); - SimpleMailMessage mailMessage = new SimpleMailMessage(); - mailMessage.setTo(user.getEmail()); - mailMessage.setSubject("Email verification"); - mailMessage.setText( - "Click on the link to verify your email: " + hostname + "verify?token=" + token.getToken() - ); - javaMailSender.send(mailMessage); - } - - @Transactional - public VerificationToken getVerificationToken(User user) { - return verificationTokenRepository.save( - VerificationToken.builder().user(user).build() - ); - } -} diff --git a/src/main/java/com/pecacm/backend/services/VerificationService.java b/src/main/java/com/pecacm/backend/services/VerificationService.java new file mode 100644 index 0000000..bcb504a --- /dev/null +++ b/src/main/java/com/pecacm/backend/services/VerificationService.java @@ -0,0 +1,26 @@ +package com.pecacm.backend.services; + +import com.pecacm.backend.entities.User; +import com.pecacm.backend.entities.VerificationToken; +import com.pecacm.backend.repository.VerificationTokenRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class VerificationService { + + private final VerificationTokenRepository verificationTokenRepository; + + @Autowired + public VerificationService(VerificationTokenRepository verificationTokenRepository) { + this.verificationTokenRepository = verificationTokenRepository; + } + + @Transactional + public VerificationToken getVerificationToken(User user) { + return verificationTokenRepository.save( + VerificationToken.builder().user(user).build() + ); + } +} diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 1510494..7b57f73 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -15,17 +15,7 @@ spring: show-sql: true use_sql_comments: true database-platform: org.hibernate.dialect.PostgreSQLDialect - mail: - host: smtp.gmail.com - port: 587 - username: your_email - password: your_app_password - properties: - mail: - smtp: - auth: true - starttls: - enable: true + verify: base: frontend: http://localhost:3000/ \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 528b54f..e6dea39 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -34,18 +34,6 @@ spring: show-sql: true use_sql_comments: true database-platform: org.hibernate.dialect.PostgreSQLDialect - mail: - host: smtp.gmail.com - port: 587 - username: ${SMTP_EMAIL} - password: ${SMTP_PASSWORD} - properties: - mail: - smtp: - auth: true - starttls: - enable: true - required: true jwt: secret: nyanpasu