diff --git a/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java b/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java index 4f48379..0f0d8f2 100644 --- a/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java +++ b/src/main/java/com/example/newnique/auth/config/WebSecurityConfig.java @@ -83,6 +83,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() // resources(정적리소스) 접근 허용 .requestMatchers("/api/auth/**").permitAll() .requestMatchers(HttpMethod.GET,"/api/news/**").permitAll() + .requestMatchers(HttpMethod.POST,"/api/sub/**").permitAll() .anyRequest().authenticated() // 그 외 모든 요청은 인증처리 ); diff --git a/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java b/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java index 27d97ed..71c7183 100644 --- a/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java +++ b/src/main/java/com/example/newnique/newsletter/controller/SubscriptionController.java @@ -3,6 +3,7 @@ import com.example.newnique.newsletter.dto.SubscriptionRequestDto; import com.example.newnique.newsletter.dto.SubscriptionResponseDto; import com.example.newnique.newsletter.service.SubscriptionService; +import jakarta.mail.MessagingException; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; @@ -19,7 +20,7 @@ public class SubscriptionController { @PostMapping("/sub") - public ResponseEntity createSub(@RequestBody SubscriptionRequestDto subscriptionRequestDto) { + public ResponseEntity createSub(@RequestBody SubscriptionRequestDto subscriptionRequestDto) throws MessagingException { SubscriptionResponseDto subscriptionResponseDto = new SubscriptionResponseDto(subscriptionService.createSub(subscriptionRequestDto)); return ResponseEntity.ok(subscriptionResponseDto); diff --git a/src/main/java/com/example/newnique/newsletter/dto/Maildto.java b/src/main/java/com/example/newnique/newsletter/dto/Maildto.java index 67ff9ca..f5b82e8 100644 --- a/src/main/java/com/example/newnique/newsletter/dto/Maildto.java +++ b/src/main/java/com/example/newnique/newsletter/dto/Maildto.java @@ -1,10 +1,12 @@ package com.example.newnique.newsletter.dto; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Getter; @Getter @AllArgsConstructor +@Builder public class Maildto { private String toAddress; private String title; diff --git a/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java b/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java index d1d6a97..6fde245 100644 --- a/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java +++ b/src/main/java/com/example/newnique/newsletter/service/SubscriptionService.java @@ -1,8 +1,11 @@ package com.example.newnique.newsletter.service; +import com.example.newnique.newsletter.dto.Maildto; import com.example.newnique.newsletter.dto.SubscriptionRequestDto; import com.example.newnique.newsletter.entity.Subscription; +import com.example.newnique.newsletter.handler.EmailSender; import com.example.newnique.newsletter.repository.SubscriptionRepository; +import jakarta.mail.MessagingException; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -11,10 +14,16 @@ public class SubscriptionService { private final SubscriptionRepository subscriptionRepository; - public Subscription createSub(SubscriptionRequestDto subscriptionRequestDto) { + private final EmailSender emailSender; + public Subscription createSub(SubscriptionRequestDto subscriptionRequestDto) throws MessagingException { Subscription subscription = new Subscription(subscriptionRequestDto); Subscription saveSubscription = subscriptionRepository.save(subscription); + Maildto maildto = Maildto.builder().title(subscriptionRequestDto.getNickName()+"님 환영합니다") + .message("뉴닉을 구독해주신걸 환영합니다 !") + .toAddress(subscriptionRequestDto.getEmail()).build(); + emailSender.sendMail(maildto); + return saveSubscription;